有没有办法以某种方式创建一种在异步执行函数中休眠以模仿 thread.sleep 的方法?
例如我有
Workthread run()
{
while (true)
{
//All calls cannot pause inside, async
CallWorkFunction();
CallOtherWorkFuctuion();
Callthirdworkfunction();
thread.sleep(0x10);
curtick++;
}
}
//CallWorkFunction()
if (nexttick - curtick > 0)
return;
foreach (var item in collection.ToList())
{
if (!item.IsReady)
continue;
collection.Remove(item);
ProcessItem(item);
nexttick = curtick + 20;
return;
}
nexttick
如果它可以像线程一样工作Thread.Sleep()
而不停止执行,这个函数会工作得更好。由于异步代码有一堆基于状态的检查,其中许多可以用正确的暂停代替。