Отправляю с windows forms C# пакет данных в микроконтроллер, и теперь нужно дождаться ответа о правильности проверки CRC-пакета, думаю запустить еще таймер, например прошло время, ответ не пришел, значит ошибка. Пока еще мало опыта в работе на C#, сделал так:
while(читаем файл по строке и передаем в порт)
{ /*выставляем флаг занятости и висим здесь пока не придет ответ о статусе очистки памяти*/
DelayBeforeNextOperation = true;
ResetDelay(true);
while (DelayBeforeNextOperation == true)
System.Threading.Thread.Sleep(1);
}//ждать флага что мк свободен или флага ошибки
Но это очень не правильно, если флаг не придет программа зависает. Как это правильно делается на Async/await, правильность оформления и т.п. Может кто может поделится пару строками примера?
Wait(), по аналогии с этим ответом https://stackoverflow.com/a/15151444/13123688. Возможно, в вашей задаче подойдёт обычная реализацияasync-await, по аналогии с этим ответом https://stackoverflow.com/a/14178317/13123688. Опять же, это гадание на кофейной гуще - нужно больше кода. – Frehzy Jun 18 '22 at 17:50Wait()это шило на мыло, человек спрашивает как от синхронного ожидания избавиться, а вы ему его же и предлагаете. НикакихTask.Wait()категорически использовать в асинхронной среде нельзя. В лучшем случае это будет то же зависание формы, в худшем - дедлок. – aepot Jun 18 '22 at 18:13