【发布时间】:2013-06-13 18:00:03
【问题描述】:
以前,当创建一个循环任务时,它会在第一次完美运行并由于时间问题而崩溃,例如一个单独任务的功能会比另一个任务开始运行得更快,即使它被编程为在此之前运行任务。
所以我的想法是想办法在延迟(时间)结束后重复任务的事件,在我的脑海中它会是这样的:
private async Task programCore()
{
int n = 1000;
for (int i = 0; i < n; )
{
FirstThing();
await Task.Delay(2100);
SecondThing();
await Task.Delay(2200);
ThirdThing();
await Task.Delay(2300);
}
////////////////////////////////////////////////////////////////////////////
else if (programCore.TasksHaveAllTimedOut) // Idealistic code.
{
programCore.Restart();
}
}
这样的事情可能吗?如果没有,有更好的方法吗?
【问题讨论】:
-
如果您等待的时间超过 2100 毫秒怎么办?
-
它没有。 2100ms 可以考虑超出它需要的时间。
-
对我来说听起来很狡猾。你还在等什么?
-
这是一个糟糕的假设。为什么不直接制作
FirstThing()等,async和await那些? -
@CodingGorilla ,你是什么意思?我对 C# 还很陌生。
标签: c# multithreading task async-await