0
어떻게 든 thread.sleep을 모방 한 async 인 실행 함수에서 sleep하는 방법을 만들 수 있습니까? 예를 들어비동기 실행에서 동기식 슬립?
은 내가 nexttick
가 실행을 중지하지 않고 스레드 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;
}
이 기능이있다. 비동기 코드가 다수의 상태 기반 검사를 갖기 시작했기 때문에 많은 부분을 올바른 일시 중지로 바꿀 수 있습니다. 이 일을
당신은 모든 16 밀리 초 뭔가를 폴링하려고합니까? 'run()'메소드는 sleep 루프가 아닌 timer 여야합니다. 생각 해보니 타이머가 있어야하는 것처럼 보입니다. 그러나 더 많은 컨텍스트가 없으면 확실하게 말하기는 어렵습니다. –
async/await를 사용한다면'Task.Delay'를 기다려야합니다. –