【发布时间】:2011-03-22 19:16:34
【问题描述】:
我有以下代码处理一个事件两次。但是我总是想确保mynewclass 总是先处理事件,然后触发本地事件处理程序代码。我知道 MyClass 事件应该首先触发,因为它是第一个创建的,但是由于线程和排队正在发生,我认为它花费了太长时间并且在我希望它这样做之前它在 myhandleeventlocal 中做某事。有什么办法可以等待它发生?
public MyMainClass
{
private MyMethod()
{
MyClass mynewclass = new MyClass();
mynewclass.myObject += MyHandler(myhandleventlocal);
mynewclass.loadedevent += EventHandler(loadedevent)
}
private void myhandleventlocal()
{
//do stuff
}
private void loadedevent()
{
//do some stuff
}
}
public MyClass
{
public MyObject myObject;
public event loadedevent;
public MyClass()
{
myObject = new MyObject();
myObject += MyHandler(myhandlevent);
}
private void myhandlevent(long value, string detail)
{
//Start a thread
//Enqueue value and detail
//On seperate thread dequeue value and process it
//Raise loadedevent event
}
}
更新:我更新了我的问题和代码来演示问题。
【问题讨论】:
-
-1:您的代码无法编译。
-
不应该!这是一个粗略的例子。
标签: c# .net .net-3.5 c#-3.0 event-handling