У меня есть следующий код, где я обрабатываю событие дважды. Однако я всегда хочу убедиться, что mynewclass
всегда обрабатывает событие первым, а затем запускается код локального обработчика событий. Я понимаю, что событие MyClass должно запускаться первым, так как оно создано первым, но из-за того, что происходит поток и enqueuing, я думаю, что он занимает слишком много времени и делает что-то в 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
}
}
UPDATE: Я обновил свой вопрос и код, чтобы продемонстрировать эту проблему.
-1: Ваш код не компилируется. –
Его не должны! Это пример. – Jon