如果我需要一个每小时在后台运行一次的任务,我可以只使用一个 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/