Поток — это независимая последовательность инструкций в программе.
Нужно подключить пространство имен System.Threading
Приоритетный поток — создается по умолчанию. Метод Main() запускающий программу, является единственным потоком (приоритетным или главным), автоматически создаваемый CLR и операционной системой.
Фоновый поток — является второстепенным.
Состояние потока:
Нужно подключить пространство имен System.Threading
Приоритетный поток — создается по умолчанию. Метод Main() запускающий программу, является единственным потоком (приоритетным или главным), автоматически создаваемый CLR и операционной системой.
Фоновый поток — является второстепенным.
Состояние потока:
- выполняющийся
- готовый к выполнению
- приостановленный
- заблокированный
- завершенный
наиболее используемые члены класса |
|
| Thread(delegate) | создание объекта класса Thread, в качестве параметра передается делегат, указывающий на метод, выполняющий поток |
| Sleep() | приостанавливает поток на заданное время в миллисекундах 1 секунда = 1000 миллисекунд |
Thread(delegate)
Main.cs
usingSystem;//подключить пространство именusingSystem.Threading;classOne {-
publicvoidPrint() { -
for(inti=0; i<25; i++) { -
Console.Write("1"); -
} -
Console.WriteLine(); -
} }classTwo {-
publicvoidPrint() { -
for(inti=0; i<25; i++) { -
Console.Write("2"); -
} -
Console.WriteLine(); -
} }classProgram {-
//метод Main() является приоритетным потоком и создается по умолчанию -
publicstaticintMain() { -
//главный поток выводит цифру 1 -
One O =newOne(); -
O.Print(); -
//следующий поток выводит цифру 2 -
//конструктору передается делегат, который скрыт от нас и принимает имя метода -
Two T =newTwo(); -
Thread Th =newThread(T.Print); -
//метод запускает поток -
Th.Start(); -
Console.ReadKey(); -
return0; -
} }
usingSystem;//подключить пространство именusingSystem.Threading;classOne {-
publicvoidPrint() { -
for(inti=0; i<25; i++) { -
Console.Write("1"); -
} -
Console.WriteLine(); -
} }classTwo {-
publicvoidPrint() { -
for(inti=0; i<25; i++) { -
Console.Write("2"); -
} -
Console.WriteLine(); -
} }classProgram {-
//метод Main() является приоритетным потоком и создается по умолчанию -
publicstaticintMain() { -
//главный поток выводит цифру 1 -
One O =newOne(); -
O.Print(); -
//следующий поток выводит цифру 2 -
//конструктору передается делегат, который скрыт от нас и принимает имя метода -
Two T =newTwo(); -
Thread Th =newThread(T.Print); -
//метод запускает поток -
Th.Start(); -
Console.ReadKey(); -
return0; -
} }
1111111111111111111111111
2222222222222222222222222
2222222222222222222222222
Sleep()
Main.cs
usingSystem;//подключить пространство именusingSystem.Threading;classProgram {-
publicstaticintMain() { -
stringstr ="Привет Мир!"; -
//вывод каждой буквы с задержкой в 0,4 секунды -
foreach(var iinstr) { -
Console.Write(i); -
Thread.Sleep(400); -
} -
Console.WriteLine(); -
Console.ReadKey(); -
return0; -
} }
usingSystem;//подключить пространство именusingSystem.Threading;classProgram {-
publicstaticintMain() { -
stringstr ="Привет Мир!"; -
//вывод каждой буквы с задержкой в 0,4 секунды -
foreach(var iinstr) { -
Console.Write(i); -
Thread.Sleep(400); -
} -
Console.WriteLine(); -
Console.ReadKey(); -
return0; -
} }
Привет Мир!