程序的框架如下,有错误敬请指正!!!!!!!!
辅助类 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)
{ }
辅助类 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)
{ }
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();
}
}
}
}