Я нахожусь в процессе обучения методам программирования, основанным на потоках, и этот вопрос может быть слишком далеким от базового ... Я даже не уверен, возможно ли это или даже правильный подход к этой проблеме. Пожалуйста, поправьте меня в том, какой вопрос мне следует задавать, если это уместно.
Я пытаюсь, чтобы определенный поток имел дело с событием (кроме потока, который инициирует событие), но я не хочу, чтобы поток пользовательского интерфейса обрабатывал его. Чтобы быть ясным, я не ищу это сделать:
private void UpdateFromNewFrame(WindowFrame frame) {
if (InvokeRequired) {
BeginInvoke(new WindowUpdateHandler(UpdateFromNewFrame), new object[] { frame });
return;
}
Text = frame.Title;
}
Я ищу способ создать тот же шаблон, но не с пользовательским интерфейсом. Причина в том, что мне приходится (при нечастых обстоятельствах) выполнять некоторую длительную обработку, которая задерживает поток, запускающий событие (и другие прослушиватели событий после этого прослушивателя событий).
Можно ли даже вызывать поток или я должен создавать новый поток в приемнике событий, или есть какой-то способ, чтобы все прослушиватели событий вызывались в отдельных (автоматически создаваемых) потоках?