【发布时间】:2009-11-13 14:34:48
【问题描述】:
我正在自学基于线程的编程技术,而这个问题可能有点离谱……我什至不确定这是否可行,甚至不确定是否是解决这个问题的正确方法。如果合适的话,请纠正我应该问的问题。
我试图让某个线程处理一个事件(除了触发事件的线程),但我不希望 UI 线程处理它。需要说明的是,我不希望这样做:
private void UpdateFromNewFrame(WindowFrame frame) {
if (InvokeRequired) {
BeginInvoke(new WindowUpdateHandler(UpdateFromNewFrame), new object[] { frame });
return;
}
Text = frame.Title;
}
我正在寻找一种创建相同模式但使用非 ui 线程的方法。原因是我必须(在极少数情况下)执行一些冗长的处理,这会延迟触发事件的线程(以及此事件侦听器之后的其他事件侦听器)。
是否甚至可以调用线程,或者我应该在事件侦听器中创建一个新线程,还是有什么方法可以让事件侦听器全部在单独的(自动创建的)线程中调用?
【问题讨论】:
标签: c# .net multithreading event-handling