【发布时间】:2016-09-23 02:31:23
【问题描述】:
我有我的主 GUI 线程,以及在它自己的 ApplicationContext 中运行的第二个线程(以保持它活着,即使没有工作要做)。我想从我的 GUI 线程调用我的第二个线程上的一个方法,但是如果我只是调用 thread.Method();它似乎在我的主 GUI 线程上运行并导致我的 GUI 变得无响应。在不同线程上调用方法的最佳方式是什么?
更新: 我真正想做的是在 2 个线程之间进行通信,而不是与 GUI 进行通信。 GUI 恰好是需要与我的第二个线程通信的线程之一。
更新 #2: 好吧,我一定是真的错过了什么。我创建了一个事件和一个委托,并让我的工作线程订阅了该事件。但是当我调用 Invoke(MyEvent);从我的 GUI 线程中,工作线程所做的工作最终在 GUI 线程上并挂起 GUI 线程,直到它完成处理。我正在尝试做的事情是否可能,而不是对静态对象进行轮询?
【问题讨论】:
标签: c# multithreading