如何在调用线程的时候传递参数我们在写Remoting程序或者其他的一些应用程序的时候难免要和线程打交道,.Net使我们很容易就可以创建一个线程,但是它提供的创建线程和启动线程的方法没有明显的提供参数,假如我们要用线程来启动类里面一个带参数的方法该怎么办?下面就简单的介绍如何使用.NET提供的丰富的框架来实现这个功能。为了可以生动详细的介绍整个过程,我建立下面的一个.NET类,它也是要用线程启动的方法的载体。类如下所示: using System;
namespace WindowsApplication1 { /// <summary> /// Summary description for UrlFetcher. /// </summary> public class MyClass{
// for method 1 private string _parameter; public MyClass(string parameter){ this._parameter = parameter; } public void MyMethod1(){ if(this._parameter!=null){ // do something Console.Write(this._parameter); } }
// for method 2 public MyClass(){} // this method is private,But it can be public or other private void MyMethod2(string parameter){ // do something Console.Write(parameter); } // Because delegate WaitCallback's parameter Type is object // I will convert it to string. public void MyMethod2(object parameter){ this.MyMethod2((string)parameter); }
// for method 3 public string MyMethod3(string parameter){ return "参数值为:"+parameter; }
// for mutil-parameters passed public string MyMutilParameters(string param1,string param2){ return "参数1和参数2连接结果为:"+param1+param2; }
} }
嘿嘿,我的英语不行,注释写的不好请见谅(因为使用的是英文的),希望没有影响您的阅读。我想我有必要简单的说一下上面这个类里里面的所包含的内容。首先包含两个构造函数,一个带参数一个不带(这里可是有意安排的)。通过类中其他方法的名字我想您一定猜出来我将介绍3种方法来传递参数,接下来我将逐一介绍。首先我们看看如何启动一个线程,首先我们可以用一个函数来实例化ThreadStart委托的一个实例,然后在使用这个实例作为参数new线程(Thread)对象,最后将这个线程Start就可以了,想了解更多请参考MSDN文档的Thread部分。 上一篇:为Serv-U提供在线修改密码功能 下一篇:.NET 连接到 Oracle的oci.dll加载错误解决方案 更多相关文章
|
推荐文章
精彩文章
|