Мое приложение должно загружать данные о ценах из веб-интерфейса API каждые 200 мс.Я должен сделать некоторую обработку этих ценовых данных.Если я работаю на гипотетически медленном процессоре, и он не успевает, я задаюсь вопросом, как с ним справиться.Есть ли общий шаблон, который я мог бы использовать, чтобы справиться с этим?
Например.Мой синхронный код на C # выглядит примерно так;
Stopwatch Stopwatch = new Stopwatch();
while (true)
{
Stopwatch.StartNew();
await GetDataFromApiMethod();
await ProcessDataFromApiMethod();
Stopwatch.Stop();
int Delay = 200 - (int)Stopwatch.ElapsedMilliseconds;
if (Delay < 0)
Debug.WriteLine("Price Scheduler lag->" + Delay + "ms.");
await Task.Delay(Delay);
}
Чистый эффект вышеизложенного заключается в том, что я просто получаю отставание.Если обработка занимает слишком много времени, ну, я просто не получаю данные каждые 200 миллисекунд.
Теперь, если я сделал два вышеуказанных ожидаемых вызова асинхронными.Что происходит, когда процессор не успевает?... и как с этим справиться?Есть ли общий шаблон для такого рода проблем?