【问题标题】:Any need for BackgroundWorker if using System.Threading.Timer?如果使用 System.Threading.Timer,是否需要 BackgroundWorker?
【发布时间】:2012-10-06 23:59:11
【问题描述】:

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

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

【问题讨论】:

    标签: c# .net multithreading timer backgroundworker


    【解决方案1】:

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

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

    【讨论】:

    • 似乎任务计划程序选项需要应用程序以管理权限运行。
    • @CJ7 - 如果我没记错的话,任务的安全主体设置将允许您自定义运行任务的权限。
    猜你喜欢
    • 2019-06-18
    • 1970-01-01
    • 1970-01-01
    • 2021-08-12
    • 2017-10-03
    • 2011-12-29
    • 2015-12-31
    • 2018-11-24
    • 1970-01-01
    相关资源
    最近更新 更多