这段代码在处理过程中将如何表现?(也就是说,它有多同步?)
public delegate void FooDelegate(bytes[] data);
public event FooDelegate FooEvent;
FooEvent += new FooDelegate(Process_X);
FooEvent += new FooDelegate(Process_Y);
FooEvent += new FooDelegate(Process_Z);
while (receiving)
{
byte[] data = getRealTimeData();
StopWatch.Start();
FooEvent(data);
StopWatch.Stop();
Console.Write(StopWatch.Elapsed.Millisec));
StopWatch.Reset();
}我有几个问题:
一些确认书:
发布于 2012-07-17 12:00:19
看起来,您将受益于事件处理程序的并行化,因为它们确实将以顺序和同步方式执行。
要创建自定义事件处理程序,可以编写:
public event FooDelegate FooEvent
{
add
{
// code to add an event handler
}
remove
{
// code to remove an event handler
}
} 有关如何使用自定义事件处理程序的更多信息,请参见下列问题:
以及乔恩·斯基特在代表和活动上的网页。
发布于 2012-07-17 10:39:09
1:是的,2:是的,它必须对事件可能返回结果。
但是:您应该以一种方式实现您的事件处理程序,以便它们不会花很长时间运行!如果他们不得不做繁重的工作,请考虑在您的事件处理程序中开始的任务中运行计算。
https://stackoverflow.com/questions/11520587
复制相似问题