【发布时间】:2012-10-06 23:59:11
【问题描述】:
如果我需要每小时在后台运行一次任务,我可以只使用 Timer 对象,它显然将使用单独的线程:http://msdn.microsoft.com/en-us/library/zdzx8wx8.aspx 吗?
由此看来,我的目的似乎没有必要使用BackgroundWorker。这是正确的吗?
【问题讨论】:
标签: c# .net multithreading timer backgroundworker
如果我需要每小时在后台运行一次任务,我可以只使用 Timer 对象,它显然将使用单独的线程:http://msdn.microsoft.com/en-us/library/zdzx8wx8.aspx 吗?
由此看来,我的目的似乎没有必要使用BackgroundWorker。这是正确的吗?
【问题讨论】:
标签: c# .net multithreading timer backgroundworker
这在很大程度上取决于您的任务是什么。 BackgroundWorker 组件将为您提供除 Timer 之外的几个附加功能,包括 cancellation support、progress reporting 等。但是,如果您只想每小时启动一次并且不需要任何进一步的操作,那么 Timer 是一个非常轻量级的选择。
您是否研究过使用任务计划程序作为另一种选择?这里有一个简洁的包装:http://taskscheduler.codeplex.com/
【讨论】: