日期:2010-06-09  浏览次数:20380 次

我们在写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;