Есть ли способ приостановить цикл на указанное время без блокировки?Я не хочу использовать Thread.Sleep (xx).Есть ли способ использовать ручное событие или диспетчерский таймер для приостановки цикла?Я не хочу использовать thread.sleep, потому что он блокирует поток, и я не хочу этого.
РЕДАКТИРОВАТЬ:
То, что я хочу сделать, похоже на сообщение здесь:
serialport, отвечающий на EventHandler, но не ReadExisting или ReadLine?
там нет ответа, поэтому я объяснил, что мне нужно сделать здесь.
Я не могу открыть последовательный порт и оставить его открытым, мне приходится каждый раз закрывать его.Итак, я хочу сделать первый элемент в цикле, открыть компорт, записать в него, прочитать из него, затем закрыть его.Если вы когда-либо использовали мышь или Bluetooth-сканер с Windows, вы знаете, что не каждый компорт постоянно отправляет сообщение.поэтому, если порт не отправляет сообщение обратно, он должен истечь.если сообщение не получено в течение короткого периода времени, мне нужно двигаться дальше.
Я мог бы снова подключиться к тому же порту с другим сообщением, если он не ответил в первый раз.когда я делаю это, я получаю сообщение об ошибке, что порт уже открыт;и это потому, что цикл просто прошел через код и не сделал достаточной паузы.
thread.sleep просто блокирует поток вместе с сообщением, которое компорт отправляет обратно, я не знаю почему, он просто делает.Я бы предпочел не использовать thread.sleep.
когда я зацикливаюсь на нем, я хочу, чтобы он сделал паузу, пока я не закрою порт, а затем начнем со следующего элемента в цикле.это самая важная часть.
есть ли способ запустить цикл, запустить метод в новом потоке, приостановить цикл, который его вызвал, дождаться возвращения сообщения или ограничения по времени, а затем продолжить цикл, когда другой потоктак говорит?спасибо
РЕДАКТИРОВАТЬ
Я использовал AutoResetEvent.спасибо за помощь