gpt4 book ai didi

.net - BackgroundWorker 是否提供真正的多线程?

转载 作者:行者123 更新时间:2023-12-04 16:37:28 25 4
gpt4 key购买 nike

学习构建多线程 WPF 应用程序我读到了一些使用 BackgroundWorker 的限制,这对我来说不是很清楚。请帮我理解:

如果我不仅想要一个线程在 UI 的幕后工作,而且可能有多个线程,它们彼此独立地开始和结束,BackgroundWorker 是否适合这种情况?我可以有多个 BackgroundWorker 实例吗?

简单地说,BackgroundWorker 是否提供多线程而不是简单的双线程?

最佳答案

每个BackgroundWorker在单独的线程上运行。您可以根据需要创建尽可能多的后台工作线程来并行运行操作,因此从这个意义上讲,它是真正的多线程。
BackgroundWorker的好处当耗时的任务完成时,您可以轻松订阅将在您的 UI 线程上触发的事件。

使用 BackgroundWorker其实很简单:

var worker1 = new System.ComponentModel.BackgroundWorker();
worker1.DoWork += (sender,e) => Thread.Sleep(10000);
worker1.RunWorkerCompleted += (sender,e) => MessageBox.Show("Worker1 Finished!");
worker1.RunWorkerAsync();

关于.net - BackgroundWorker 是否提供真正的多线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2257716/

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