我知道您不能从 a 调用 GUI 更新函数background thread
,但我看不出如何创建 a delegate
,将 GUI 更新函数分配给它,然后调用它来解决这个问题。这与调用 GUI 更新函数本身有何不同?创建function pointer
( delegate
) 如何解决这个问题?
问问题
237 次
1 回答
4
委托不解决这个问题,Control.BeginInvoke() 或 Dispatcher.BeginInvoke() 方法可以。只有他们知道如何在特定的其他线程上正确运行代码,这是 UI 线程使用的消息循环(也称为调度程序循环)提供的功能。这样的循环是生产者-消费者问题的常见解决方案。
这些方法需要一个委托对象,作为参数传递。以便他们知道需要在 UI 线程上运行哪些特定代码。
于 2013-07-23T22:08:30.563 回答