c# - 如果使用 System.Threading.Timer,是否需要 BackgroundWorker?

标签 c# .net multithreading timer backgroundworker

如果我需要一个每小时在后台运行一次的任务,我可以只使用一个 Timer 对象,它显然会使用一个单独的线程:http://msdn.microsoft.com/en-us/library/zdzx8wx8.aspx

由此看来,我没有必要使用 BackgroundWorker。这是正确的吗?

最佳答案

这在很大程度上取决于您的任务是什么。 BackgroundWorker 组件将为您提供除 Timer 之外的几个附加功能,包括 cancellation support , progress reporting等等。但是,如果您只想每小时开始一些事情并且不需要任何进一步的东西,那么 Timer 是一个非常轻量级的选择。

您是否研究过使用任务计划程序作为另一种选择?这里有一个整洁的包装:http://taskscheduler.codeplex.com/

关于c# - 如果使用 System.Threading.Timer,是否需要 BackgroundWorker?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12764940/

相关文章:

c# - 基于链接改变文化 MVC4

c++ - 如何在不同的线程中保持一定的帧率

c# - WPF Multibinding - 需要使用 Relay 命令

c# - 如何使用 lucene.Net 进行正则表达式搜索

c# - 使用 C# 以编程方式切换耳机中的立体声音频 channel (左 <> 右)

.net - Outlook 2003 和 Outlook 2007 插件 COM 资源发布

android - 从 Activity 的 OnCreate 启动的 AsyncTask,仅当此类 AsyncTask 当前未运行时。我该如何实现这个?

Java GUI 线程 - SwingWorker

java - 异常设计——每一层的自定义异常

c# - 如何将 DataGridView 中的 "True"更改为"is"?