是否可以将后台工作程序运行到从工具箱中获取的计时器?就像可以在Timer上调用Task类一样,例如:
private void elapsed_time(object sender, Eventargs e)
{
Task test = new Task(()=>method());
test.Start();
}
也许这是一个非常愚蠢的问题,但我只是想知道。我在互联网上做过研究,但没有直接答案。非常感谢你。
答案 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