程序的框架如下,有错误敬请指正!!!!!!!!
辅助类 A 
Class A
{
  Thread thd;
  // 在构造函数中生成新的线程 
  public A()
  {  
     thd=new Thread(new ThreadStart(EventPublish));
  }
   // 定义委托
   public delegate void EventChangHandler( object source, EventArgs e);
   // 为委托指定调用方法。。
   public event   EventChangHandler OnEventChangeHandler;
     
  // 事件公布者
  void EventPublish()
  {   
     EventArgs e=new EventArgs();
     if(......)
    {
     // 在一定条件下公布事件
     OnEventChangeHandler(this,e);
     .......
     }
  }
}
..................
class M
 {
 // 程序入口点
  static void Main(..)
 {
 // 构造新对象时,产生新的线程
  A test=new A();
  //将自己添加进事件预定者列表
   A.OnEventChangeHandler+= new A.EventChangHandler(OnChange);
  }
   // 事件响应的方法
  public void OnChange(object source ,EventArgs e)
  {   }

解决方案 »

  1.   

    using System;
    using System.Threading;namespace ThreadAndEventProc
    {
    /// <summary>
    /// Class1 的摘要说明。
    /// </summary>
    class MainThread
    {
    /// <summary>
    /// 应用程序的主入口点。
    /// </summary>
    [STAThread]
    static void Main(string[] args)
    {

    // 构造新对象时,产生新的线程
    A test=new A();
    MainThread main=new MainThread(test);
    //将自己添加进事件预定者列表

    test.Start();
    //test.EventPublish(); Console.ReadLine();
    }
    public MainThread(A param)
    {
    param.OnEventChangeHandler+= new A.EventChangHandler(OnChange);
    } // 事件响应的方法
    public void OnChange(object source ,NumEventArg e)
    {
              Console.WriteLine("Successfully call the OnChange() Event Handler:{0}",e.num);
      //Console.ReadLine();
    } }
    class NumEventArg
    {
    public int num;
    public NumEventArg(int param)
    {
    num=param;
    }
    }
    class A
    {
    Thread thd;
    // 在构造函数中生成新的线程 
    public A()
    {  
    Console.WriteLine("Successfully create Event Handler");
    } public void Start()
    {
    thd=new Thread(new ThreadStart(EventPublish));
    thd.Start();
    }
    // 定义委托
    public delegate void EventChangHandler( object source, NumEventArg e);
    // 为委托指定调用方法。。
    public event   EventChangHandler OnEventChangeHandler;
         
    // 事件公布者
    public void EventPublish()
    {   
    NumEventArg e=new NumEventArg(255);
    if(true)
    {
    // 在一定条件下公布事件
    Console.WriteLine("Event Publish !");
    OnEventChangeHandler(this,e);
    // Console.ReadLine();

    }
    }
    }
    }