【发布时间】:2011-01-16 11:52:39
【问题描述】:
学习构建多线程 WPF 应用程序 我读到了一些使用 BackgroundWorker 的限制,这对我来说不是很清楚。请帮我理解:
如果我不仅希望一个线程在 UI 的后台工作,而且可能有多个线程,彼此独立地开始和结束,BackgroundWorker 是否适合这种情况?我可以有多个 BackgroundWorker 实例吗?
简单来说,BackgroundWorker 是否提供了多线程而不是简单的双线程?
【问题讨论】:
-
你有链接到你读到的限制吗?
-
@Mark Byers 例如这一段(来自 Matthew MacDonald 的“Pro WPF in C# 2008”一书):“注意:如果您有一个在后台运行的单个异步任务,则 BackgroundWorker 是完美的从头到尾(可选支持进度报告和取消)。如果您有其他想法 - 例如,在应用程序的整个生命周期中运行的异步任务或在应用程序执行时与应用程序通信的异步任务工作,您需要使用 .NET 的线程支持来设计定制的解决方案。”
-
我认为这更多的是关于什么是好的设计的问题,而不是技术上可能的问题。您可以创建许多 BackgroundWorker,但这可能不是解决问题的最佳方式。
标签: .net wpf multithreading backgroundworker