线程代理综合小实例,还有传递参数的方法

using System;
using System.Threading;
namespace ThreadDelegate2
{
 /// <summary>
 /// ThreadDelegate2 的摘要说明。
 ///
 /// 这个例子
 /// 微软的教程中的实例
 /// 由于自己的疏忽造成了一格委托与方法不匹配的错误
 /// 提示错误:E:\thread\ThreadDelegate2\Class1.cs(31): 方法“ThreadDelegate2.SimpleThread.Args.work(object)”与委托“void System.Threading.ThreadStart()”不匹配

 /// </summary>
 

 public class SimpleThread
 {
  public delegate void Start(object o);
  private class Args
  {
   public object o;
   public Start s;
   public void work(boject o)//这里出错应该为:public void work()
   {
    s(o);
   }
  }

  public static Thread CreateThread(Start s,object arg)
  {
   Args a=new Args();
   a.o=arg;
   a.s=s;
   Thread t=new Thread(new ThreadStart(a.work));
   return t;

  }
 }

 class Worker
 {
  public static void WorkerMethod(object o)
  {
   Console.WriteLine("参数为:"+o);
  }
 }

 class Work
 {
  public static void Main(string[] args)
  {
   Thread t=SimpleThread.CreateThread(new SimpleThread.Start(Worker.WorkerMethod),"输入参数");
   t.Start();
   t.Join(Timeout.Infinite);
  }
 }
}

posted @ 2007-12-11 09:12  东风125  阅读(165)  评论(0)    收藏  举报