Метод Sleep
Метод Sleep статический.
Sleep(0) отдаёт квант и
сразу возвращается. Положительный
аргумент останавливает лишь
этот поток - длительность в
примерах не выводят. После
паузы ждут
Join.
Синтаксис
Thread.Sleep(milliseconds);
Пример
Давайте вызвать Sleep(0)
и записать текст:
using System;
using System.Threading;
class Program
{
static void Main()
{
string text = "";
var thread = new Thread(() =>
{
Thread.Sleep(0);
text = "abcde";
});
thread.Start();
thread.Join();
string res = text;
Console.WriteLine(res);
}
}
Результат выполнения кода:
"abcde"
Пример
Давайте вывести текст в
Main после Join:
using System;
using System.Threading;
class Program
{
static void Main()
{
var thread = new Thread(() => { Thread.Sleep(0); });
thread.Start();
thread.Join();
string res = "abcde";
Console.WriteLine(res);
}
}
Результат выполнения кода:
"abcde"
Пример
Давайте убедиться, что главный поток не спал вместе с дочерним:
using System;
using System.Threading;
class Program
{
static void Main()
{
bool mainRan = false;
var thread = new Thread(() => { Thread.Sleep(0); });
thread.Start();
mainRan = true;
thread.Join();
bool res = mainRan;
Console.WriteLine(res);
}
}
Результат выполнения кода:
True
Смотрите также
-
Join,
дождаться потока -
Start,
запуск -
Thread,
класс -
ThreadPool,
безSleepдля ожидания