Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->编程语言 ->ASP.NET ->正文

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

来源:Linuxdby.com 作者:Webmaster 时间:2007-06-04 点击: [收藏] [投稿]

我们在写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加载错误解决方案

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
Power by linux-cn.com 粤ICP备05006655号