2010-08-20 62 views
0

我有一些异步操作正在我的应用程序的主线程上执行。我需要一个工作线程定期轮询主线程并检查主线程上的值。如何从工作线程检查主线程的属性值?

我该怎么做?我可以在主线程正在监听的工作线程上引发事件吗?双向通信。

谢谢..

回答

1

另一种更“手动”的方式来完成你在这里要求的东西。有主线程检查感兴趣的值,然后发送一个复位事件的工作线程:

  1. 看的ManualResetEvent(和的AutoResetEvent,根据您的需要)在线程库。这些是非常简单的在工作者线程和主线程之间传递信号的简单机制。

  2. 在主线程上创建一个定时器/回调函数,在合理的时间段内检查该值。如果将期望值评估为true,则将发送信号的事件设置为工作线程。

0

如果您正在使用WPF,你可以有工作线程调用WPF窗口的Dispatcher.Invoke方法来获得数据的主线程上。如果您使用的是WinForms,表单本身有一个“Invoke”方法,您可以检查“InvokeRequired”方法以确定是否应该调用Invoke方法。

相关问题