Я сталкиваюсь со странной ошибкой, которая, кажется, сводится к Task.Delay или System.Threading.Sleep, не дожидаясь указанного полного интервала, это нормальное поведение?
System.Diagnostics.Stopwatch sw = System.Diagnostics.Stopwatch.StartNew();
//System.Threading.Thread.Sleep(ms);
Task.Delay(ms).Wait();
var elapsed = sw.Elapsed.TotalMilliseconds;
if (elapsed < ms) {
Console.WriteLine("WTF?");
}