Visual C#多线程参数传递浅析

Visual C#多线程参数传递浅析

ID:38254927

大小:18.73 KB

页数:4页

时间:2019-06-07

Visual C#多线程参数传递浅析_第1页
Visual C#多线程参数传递浅析_第2页
Visual C#多线程参数传递浅析_第3页
Visual C#多线程参数传递浅析_第4页
资源描述:

《Visual C#多线程参数传递浅析》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、VisualC#多线程参数传递浅析2007-09-0409:40 来源:论坛整理 作者:TonyWang 责任编辑:方舟·yesky 评论(2)  我们在写Remoting程序或者其他的一些应用程序的时候难免要和线程打交道,.Net使我们很容易就可以创建一个线程,但是它提供的创建线程和启动线程的方法没有明显的提供参数,假如我们要用线程来启动类里面一个带参数的方法该怎么办?下面就简单的介绍如何使用.NET提供的丰富的框架来实现这个功能。为了可以生动详细的介绍整个过程,我建立下面的一个.NET类,它也是要用线程启动的方法的载体。类如下所示: usingSystem;

2、namespaceWindowsApplication1{ ///

 ///SummarydescriptionforUrlFetcher. /// publicclassMyClass{  //formethod1  privatestring_parameter;  publicMyClass(stringparameter){   this._parameter=parameter;  } publicvoidMyMethod1(){  if(this._parameter!=null){   //dosomething

3、   Console.Write(this._parameter);  } } //formethod2 publicMyClass(){} //thismethodisprivate,Butitcanbepublicorother privatevoidMyMethod2(stringparameter){  //dosomething  Console.Write(parameter); } //BecausedelegateWaitCallback'sparameterTypeisobject  //Iwillconvertittostring. publ

4、icvoidMyMethod2(objectparameter){  this.MyMethod2((string)parameter); } //formethod3 publicstringMyMethod3(stringparameter){  return"参数值为:"+parameter; } //formutil-parameterspassed publicstringMyMutilParameters(stringparam1,stringparam2){  return"参数1和参数2连接结果为:"+param1+param2; }}}  嘿嘿

5、,我的英语不行,注释写的不好请见谅(因为使用的是英文的),希望没有影响您的阅读。我想我有必要简单的说一下上面这个类里里面的所包含的内容。首先包含两个构造函数,一个带参数一个不带(这里可是有意安排的)。通过类中其他方法的名字我想您一定猜出来我将介绍3种方法来传递参数,接下来我将逐一介绍。首先我们看看如何启动一个线程,首先我们可以用一个函数来实例化ThreadStart委托的一个实例,然后在使用这个实例作为参数new线程(Thread)对象,最后将这个线程Start就可以了,想了解更多请参考MSDN文档的Thread部分。  为了测试我们的结果我建立了一个WinFo

6、rm的工程,其中有一个Form和4个按钮,如果你需要所有的源码请发送邮件到wu_jian830@hotmail.com,如果我有时间我会给你发过去的。接下来是每种方法的详细描述。  1、使用构造函数来传递参数  众所周知,我们可以使用一个带参数的构造函数来构造对象,既然这样我们可以利用构造函数先将要使用的参数值传递到对象里面的内部变量上,然后再使用一个无参数的方法来使用这个参数(假装参数)。简单的说就是,在类里面声明一个变量专门用来保存函数需要的参数,函数变成无参的形式。这种方法的最大问题就是破坏了封装性,虽然我们不能直接方法这些变量但是隐患总是存在的(或者说看

7、上去不爽都可以)。下面代码片断给出了如何使用这个方法来传递参数的详细内容,这也是上面提到的4个按钮中的一个按钮(Button1)的Click代码。为了有参数可传我在WinForm全局定义了一个如下的变量://Thisisparameter'svalueprivatestringmyParameter="ParameterValue";  按钮事件如下所示://passedparameterstothreadbyconstructprivatevoidbutton1_Click(objectsender,System.EventArgse){ MyClassi

8、nstance=newM

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。