gpt4 book ai didi

c# - WinForm 多线程。是否使用 backgroundWorker?

转载 作者:太空狗 更新时间:2023-10-29 18:11:03 24 4
gpt4 key购买 nike

我有一个简单的应用程序,它会触发一系列数据密集型任务。我对 WinForms 不是很有经验,我想知道在不锁定界面的情况下执行此操作的最佳方法。 backgroundWorker 是否可以重复使用,或者有其他方法吗?

谢谢

最佳答案

BackgroundWorker 是一个也包含通知同步的线程。例如,如果您想在扫描完成时更新您的 UI,则常规 Thread 无法访问 UI 对象(只有 UI 线程可以这样做);因此,BackgroundWorker 提供了一个 Completed 事件处理程序,该处理程序在操作完成时在 UI 线程上运行。

有关更多信息,请参阅:Walkthrough: Multithreading with the BackgroundWorker Component (MSDN)

和一个简单的示例代码:

var worker = new System.ComponentModel.BackgroundWorker();
worker.DoWork += (sender,e) => Thread.Sleep(60000);
worker.RunWorkerCompleted += (sender,e) => MessageBox.Show("Hello there!");
worker.RunWorkerAsync();

关于c# - WinForm 多线程。是否使用 backgroundWorker?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11500563/

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