如何在计时器上运行backgroundworker

时间:2017-07-11 04:54:48

标签: c#

是否可以将后台工作程序运行到从工具箱中获取的计时器?就像可以在Timer上调用Task类一样,例如:

 private void elapsed_time(object sender, Eventargs e)
 {
     Task test = new Task(()=>method());
     test.Start();
 }

也许这是一个非常愚蠢的问题,但我只是想知道。我在互联网上做过研究,但没有直接答案。非常感谢你。

2 个答案:

答案 0 :(得分:1)

我不太确定你的问题是否意味着在每个滴答上创建一个后台工作者。但是,如果这就是你要找的东西,我认为这是可能的!我还没有尝试过这段代码,只是猜测它可能有用:

private void elapsed_time(object sender, Eventargs e)
{
     System.ComponentModel.BackgroundWorker worker = new System.ComponentModel.BackgroundWorker();

     worker.DoWork += NewBackgroundWork_Start;
     worker.RunWorkerCompleted += NewWork_Completed;
     worker.RunWorkerAsync();
}

private void NewBackgroundWork_Start(object sender, System.ComponentModel.DoWorkEventArgs e)
{
     Console.Writeline("I am the new job");
}

private void NewWork_Completed(object sender, System.ComponentModel.DoWorkEventArgs e)
{
     Console.Writeline("The job is complete");
}

答案 1 :(得分:1)

您应该阅读有关Timer类的MSDN文章。 有一个例子,它完全符合你的要求:

https://msdn.microsoft.com/en-us/library/system.timers.timer(v=vs.110).aspx#Examples

只需从工具箱中拖放计时器就不够了。

计时器具有可以绑定方法的事件Elapsed。这将在计时器熄灭时执行 最好是在文档中查看它的工作原理:https://msdn.microsoft.com/en-us/library/system.timers.timer.elapsed(v=vs.110).aspx

相关问题