【发布时间】:2016-04-19 20:08:59
【问题描述】:
我有一个后台工作线程不断更新来自网络源的窗口中显示的数据。我还有一个可以触发事件的按钮。
我的问题是,事件方法在哪个阶段(相对于后台工作者执行)执行?它是否与线程相似,因为它们同时发生?即,当我的按钮单击方法正在执行时,后台工作人员是否仍将运行?在这种情况下,我将需要使用锁定。还是后台worker会暂停直到按钮点击方法终止?
【问题讨论】:
-
事件 handler 与触发器在同一线程上执行,除非有自定义代码在 不同 线程上触发处理程序。因此,如果后台工作人员调用单击事件处理程序,它将暂停,直到单击事件处理程序终止。如果处理程序因单击按钮而被执行,它将在 UI 线程中执行。
标签: c# wpf multithreading events