прошивка _nop () в c # - PullRequest
       33

прошивка _nop () в c #

0 голосов
/ 05 июля 2011

Я портирую часть прошивки на графический интерфейс, написанный на c #. Я узнал, что

nop()

- это функция, которая на самом деле ничего не делает и задерживает выполнение на некоторое количество тактов.

Допустим, если я использую nop (), это приведет к задержке выполнения в прошивке на две миллисекунды. Как я могу отложить вещи в C #?

Заранее спасибо,

Ответы [ 4 ]

4 голосов
/ 05 июля 2011

System.Threading.Thread.Sleep(milliseconds);

Обратите внимание, что блокировка основного потока вашего графического интерфейса на несколько миллисекунд, как правило, плохая идея. Может быть лучше использовать таймер, который просыпается через несколько миллисекунд, чтобы позволить обработке событий происходить в это время. Также, если вы хотите сделать паузу перед выполнением некоторых операций ввода-вывода, рассмотрите возможность использования асинхронного ввода-вывода.

Также обратите внимание, что ни Windows, ни .NET не предоставляют никаких гарантий в реальном времени. Вызов Thread.Sleep(2) приостановит работу как минимум на 2 миллисекунды, но этот поток может не возобновить выполнение в течение многих миллисекунд после этого.

2 голосов
/ 05 июля 2011
Thread.Sleep(1000);

Остановит текущее выполнение на 1 секунду.

0 голосов
/ 05 июля 2011

Пойду против зерна и скажу, если вам нужно строгое время, Thread.Sleep не очень хорошая идея .

Я рекомендую вместо этого использовать ручной / автоматический сброс событий с таймером System.Timers.

0 голосов
/ 05 июля 2011

Thread.Sleep .

Например: Thread.Sleep(2);

Имейте в виду, что минимальное разрешение окон составляет около 15 мс, поэтому вы можетене получить точно 2 мс. Подробнее см. Какое влияние оказывает Thread.Sleep (1) на C #?

...