xco*_*r37 7 task-parallel-library windows-runtime win-universal-app
我正在使用C#/ Xaml开发Windows 10 Universal App,我正在使用等待Task.Delay(delayInMilliseconds)来暂停给定时间的方法.我的场景有点实时,因此它对时间变化非常敏感,我需要确保当我暂停一个方法让我们说8毫秒时,它会暂停8毫秒.我注意到**Task.Delay**暂停方法的实际时间跨度与传递的延迟参数不同,1到30毫秒,每次调用的"偏差"长度不同.所以,当我想睡8毫秒时,我的系统会睡眠9到39毫秒,这完全破坏了我的情景.所以,我的问题是什么是替换**Task.Delay**并获得良好精度的最佳方法?目前我使用这种方法:
public static void Delay1(int delay)
{
long mt = delay * TimeSpan.TicksPerMillisecond;
Stopwatch s = Stopwatch.StarNew();
while (true)
{
if (s.Elapsed.TotalMilliseconds > delay)
{
return;
}
}
}
Run Code Online (Sandbox Code Playgroud)
但它猜测它消耗了大量资源,即处理器核心的100%.如果用户具有少量处理器核心,则这将是非常不足的.