2017-02-15 2 views
-2

Так я начинаю нить, как это:Как сделать независимый сон Thread в C#

Thread thread = new Thread(myFunction); 
    thread.start(); 

И эта функция имеет петлю, которая должна выполняться один раз в секунду:

public void myFunction(){ 
    while(true){ 
     sleep? 
    } 
    } 

Как я заставить эту нить спать, не останавливая мой основной поток?

+1

Есть сообщения _many_ в Stack Overflow, описывающие 'Thread.Sleep()', которые объясняют, как и документация MSDN, что задерживается только поток, вызывающий этот метод. Вызов 'Thread.Sleep()' в рабочем потоке будет задерживать основной поток только в том случае, если основной поток на самом деле сам ждет в рабочем потоке по какой-то причине. Если вы попытались вызвать 'Thread.Sleep()' и обнаружили, что он блокирует поток, который вы не хотите его блокировать, вам нужно опубликовать вопрос, который включает хороший [mcve], который надежно воспроизводит это поведение. –

ответ

0

Согласно MSDN, Thread.Sleep приостанавливает текущий поток для заданного промежутка времени, то есть поток, в котором текущая функция выполняется.

Смежные вопросы