线裎里面传递参数问题解决方案
 /*
/* 需要明确Form知道线程结束后要干什么。
需要明确Form知道线程结束后要干什么。 举个例子:
举个例子: 比如我需要在线程结束之后,刷新Form上Label的内容。
比如我需要在线程结束之后,刷新Form上Label的内容。 这样,可以定义一个delegate,让线程结束之后回调刷新Label这个方法。
这样,可以定义一个delegate,让线程结束之后回调刷新Label这个方法。 以下是示例代码,Class1也可以是Form这个类。
以下是示例代码,Class1也可以是Form这个类。 */
*/
 class Class1
class Class1 {
{
 [STAThread]
  [STAThread] static void Main(string[] args)
  static void Main(string[] args) {
  { Class1 c = new Class1();
   Class1 c = new Class1(); ThreadWrapper tw = new ThreadWrapper(new Callback(c.PrintResult), 100);
   ThreadWrapper tw = new ThreadWrapper(new Callback(c.PrintResult), 100); // 线程开始
   // 线程开始 tw.Start();
   tw.Start(); Console.ReadLine();
   Console.ReadLine(); }
  } 
                   // 打印结果,用于回调
   // 打印结果,用于回调 public void PrintResult(int result)
  public void PrintResult(int result) {
  { Console.WriteLine("Result:   " + result.ToString());
   Console.WriteLine("Result:   " + result.ToString()); }
  } }
 }
 // 回调代理
 // 回调代理 public delegate void Callback(int n);
 public delegate void Callback(int n);
 class ThreadWrapper
 class ThreadWrapper {
 {   public readonly Thread mThread;
  public readonly Thread mThread;
 private Callback callback;
  private Callback callback;
 private int n;
  private int n;
 // 参数1:用于回调的代理
   // 参数1:用于回调的代理 // 参数2:需要计算的值
   // 参数2:需要计算的值 public ThreadWrapper(Callback callback, int arg)
  public ThreadWrapper(Callback callback, int arg) {
  { this.callback = callback;
      this.callback = callback; ThreadStart myThreadDelegate = new ThreadStart(this.Run);
      ThreadStart myThreadDelegate = new ThreadStart(this.Run); this.mThread = new Thread(myThreadDelegate);
      this.mThread = new Thread(myThreadDelegate); this.n = arg;
      this.n = arg; }
  }
 // 线程的对外接口
 // 线程的对外接口 public void Start()
  public void Start() {
  { this.mThread.Start();
      this.mThread.Start(); }
  }
 // 需要在线程里调用的方法
  // 需要在线程里调用的方法 public void Run()
  public void Run() {
  { int result = this.Caculate(this.n);
      int result = this.Caculate(this.n); callback(result);
      callback(result); }
  }
 private int Caculate(int n)
  private int Caculate(int n)  {
  { return n*100;
      return n*100; }
  } }
 }
 
                    
                

 
   
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号