分别创建publisher类,subscriber类,发布与订阅,最后再main函数中调用运行,参考代码如下:
- publisher
class publisher
{
public delegate void Publisherrhandler(PublisherEventArgs e);
public event Publisherrhandler PublisherEvent;
public void PublisherProcess()
{
PublisherEventArgs args = new PublisherEventArgs();
args.time = DateTime.Now;
args.count = 1;
OnPublisherEvent(args);
Thread.Sleep(1000);
args.time = DateTime.Now;
args.count = 2;
OnPublisherEvent(args);
Thread.Sleep(1000);
args.time = DateTime.Now;
args.count = 3;
OnPublisherEvent(args);
}
public void OnPublisherEvent(PublisherEventArgs e)
{
if(PublisherEvent != null)
{
PublisherEvent(e); //准备发布出去的事件
}
}
public class PublisherEventArgs : EventArgs
{
public DateTime time;
public int count;
}
}
- subscriber
class subscriber
{
public static void Logger(EventArgs e)
{
PublisherEventArgs args = (PublisherEventArgs)e;
DateTime time = args.time;
int count = args.count;
Console.WriteLine(string.Format("时间:{0},次数:{1}",time,count));
}
}
- Main
public Form1()
{
InitializeComponent();
publisher mypublisher = new publisher();
mypublisher.PublisherEvent += new publisher.Publisherrhandler(subscriber.Logger);
mypublisher.PublisherProcess();
}
网友评论