当前位置:中国站长下载文章中心网页编程.NET编程 → 如何在调用线程的时候传递参数

如何在调用线程的时候传递参数

减小字体 增大字体 作者:不详  来源:不详  发布时间:2006-8-14 8:49:10
tring MyMethod3Delegate(string parameter);
  
   private void button3_Click(object sender, System.EventArgs e) {
  
   MyClass instance = new MyClass();
  
   MyMethod3Delegate myMethod3 = new MyMethod3Delegate(instance.MyMethod3);
  
   myMethod3.BeginInvoke("parameterValue",new AsyncCallback(AfterMyMothod3),null);
  
   }
  
   public void AfterMyMothod3(IAsyncResult result){
  
   AsyncResult async = (AsyncResult) result;
  
   MyMethod3Delegate DelegateInstance = (MyMethod3Delegate) async.AsyncDelegate;
  
   Console.WriteLine ("函数调用返回值:{0}\n", DelegateInstance.EndInvoke(result));
  
   }
  
   首先为了使用委托我们声明了一个MyMethod3Delegate的委托,该委托说明一个参数和返回值为string的函数是符合条件的,所以我们在MyClass里面定义了一个MyMethod3的方法。该函数的型构符合上面的委托,所以我们可以在Button3点击的时候用这个方法实例化一个委托,然后我们使用异步的方式调用这个方法,为了得到返回结果我们写了AfterMyMothod3方法用来显示该函数的执行结果。运行程序点击Button3可以看到Output中输出的结果为MyMethod3带参数执行的结果。最后我给出如何传递多个参数的方法,我的例子是传递2个参数。代码如下:
  
  // mutil-parameters passed
  
   delegate string MyMutilParamsDelegate(string parameter1,string parameter2);
  
   private void button4_Click(object sender, System.EventArgs e) {
  
   MyClass instance = new MyClass();
  
   MyMutilParamsDelegate mutilParams = new MyMutilParamsDelegate(instance.MyMutilParameters);
  
   mutilParams.BeginInvoke("param1","params2",new AsyncCallback(AfterMutilParams),null);
  
   }
  
  
  
   public void AfterMutilParams(IAsyncResult result){
  
   AsyncResult async = (AsyncResult) result;
  
   MyMutilParamsDelegate DelegateInstance = (MyMutilParamsDelegate) async.AsyncDelegate;
  
   Console.WriteLine ("多参数函数调用返回结果:{0}\n", DelegateInstance.EndInvoke(result));
  
   }
  
  由于篇幅关系代码就不作详细说明了。有不正确的地方请指正,谢谢阅读!联系方式:wu_jian830@hotmail.com CSDN论坛ID:cuike519
  
  参考文档:
  
  http://www.codeproject.com/Purgatory/ThreadsinC_.asp
  
  http://www.msdn.com
    做人要厚道,请注明转自chinazhan中国站长(www.ChinaZhan.com)。

上一页  [1] [2]