gpt4 book ai didi

vb.net - 委托(delegate)如何解决跨线程问题?

转载 作者:行者123 更新时间:2023-12-03 12:52:36 25 4
gpt4 key购买 nike

我知道你不能从 background thread 调用 GUI 更新函数。 ,但我看不到如何创建 delegate ,给它分配GUI更新函数,然后调用它就解决了这个问题。这与调用 GUI 更新函数本身有何不同?如何创建 function pointer ( delegate ) 解决这个问题?

最佳答案

委托(delegate)不解决这个问题,Control.BeginInvoke() 或 Dispatcher.BeginInvoke() 方法可以。只有他们知道如何在特定的其他线程上正确运行代码,这是 UI 线程使用的消息循环(也称为调度程序循环)提供的功能。这样的循环是 producer-consumer problem 的常见解决方案。 .

这些方法需要一个委托(delegate)对象,作为参数传递。以便他们知道需要在 UI 线程上运行哪些特定代码。

关于vb.net - 委托(delegate)如何解决跨线程问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17820430/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com