110,566
社区成员
发帖
与我相关
我的任务
分享
class Program
{
static void Main(string[] args)
{
Observer ob = new Observer(new Publisher());
Console.ReadKey();
}
}
public class Observer
{
private Publisher pub;
public Observer(Publisher pub)
{
this.pub = pub;
pub.SampleEvent += pub_SampleEvent;
}
void pub_SampleEvent(object sender, SampleEventArgs e)
{
Console.WriteLine("The latest message is " + e.Message);
}
}
public class Publisher
{
private Timer timer;
public Publisher()
{
timer = new Timer((e) => {
RaiseSampleEvent();
}, new AutoResetEvent(false),1,1000);
}
// Declare the delegate (if using non-generic pattern).
public delegate void SampleEventHandler(object sender, SampleEventArgs e);
// Declare the event.
public event SampleEventHandler SampleEvent;
// Wrap the event in a protected virtual method
// to enable derived classes to raise the event.
protected virtual void RaiseSampleEvent()
{
// Raise the event by using the () operator.
if (SampleEvent != null)
SampleEvent(this, new SampleEventArgs(DateTime.Now.ToString()));
}
}
public class SampleEventArgs : EventArgs
{
public string Message;
public SampleEventArgs(string message)
{
Message = message;
}
}