.net - 在 Windows.Forms 中执行后台任务的最简单方法是什么?

标签 .net winforms multithreading design-patterns

后台任务是涉及网络 I/O、磁盘 I/O 或其他长时间运行的任务,这些任务可能会或可能不会通过网络发生。它通常会与更新 GUI 的代码混合在一起,这些代码需要在另一个线程(GUI 线程)上运行。

简单的意思是,当打开 Form.cs 文件时,源代码比以前更容易或更容易阅读。实际上,源代码的流程仍然必须按照代码执行的顺序顺序读取,而不管它在哪个线程上执行。所有支撑结构都必须可重复使用并隐藏在某处,而不是包含在每个表单中。

谷歌搜索 MSDN:发现微软官方认可的解决方案是 System.ComponentModel.BackgroundWorker,它在第二点上(非常!)不足。

(在 System.Windows.Threading.Dispatcher 中还有一个官方认可的 Silverlight/XAML/3.5 解决方案模型。)

最佳答案

如果你真的不喜欢 BackgroundWorker,你可以像我一样为后台操作创建自己的基类 here .

关于.net - 在 Windows.Forms 中执行后台任务的最简单方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1524854/

相关文章:

我可以使用线程来更改 GTK 镜像吗?

java - Java 线程安全适用于类的所有实例还是仅适用于共享实例?

c# - Entity Framework 6 - 缺少仅包含引用不同表的主键的表

.net - 决定我是否应该拆分表格

c# - 如何从 ClickOnce 应用程序获取命令行?

c# - TextBox 上的 Focus() 不起作用

c# - 从单轨铁路到 ASP.Net MVC

c# - 如何防止我的 HTTP 服务器出现 "sleeping"?

c# - 请向我解释这个 BackgroundWorker 事件

java - 获取控制当前类的java线程