C# 循环任务仅执行一次
本文关键字:一次 执行 循环 任务 | 更新日期: 2023-09-27 18:32:36
我希望BuildFeed每秒运行一次。
此代码仅运行一次。
public class FeedDal{
public FeedDal()
{
new Task(() => BuildFeed(), new CancellationToken(false), TaskCreationOptions.LongRunning).Start();
}
private void BuildFeed()
{
//going here only once
}
}
谢谢
上面的代码只运行一次的原因是,嗯,你调用它一次。
为了在每x
秒永久调用某个方法,您可以使用 Timer
.
请尝试以下代码。
public static void FeedDal()
{
var inerval = 1000;
var timer = new System.Timers.Timer();
timer.Elapsed += (o,e) => new Task(()
=> BuildFeed(), new CancellationToken(false), TaskCreationOptions.LongRunning).Start();
timer.Interval = inerval;
timer.Start();
}
因为你只调用该函数一次。如果您希望它多次调用,则必须执行以下操作:
public class FeedDal
{
public FeedDal()
{
while (true)
{
new Task(() => BuildFeed()).Start();
Thread.Sleep(1000);
}
}
private void BuildFeed()
{
// Will go here once a second.
}
}
希望这有帮助,
杰森。