Поток — это независимая последовательность инструкций в программе.
Нужно подключить пространство имен System.Threading
Приоритетный поток — создается по умолчанию. Метод Main() запускающий программу, является единственным потоком (приоритетным или главным), автоматически создаваемый CLR и операционной системой.
Фоновый поток — является второстепенным.
Состояние потока:
Нужно подключить пространство имен System.Threading
Приоритетный поток — создается по умолчанию. Метод Main() запускающий программу, является единственным потоком (приоритетным или главным), автоматически создаваемый CLR и операционной системой.
Фоновый поток — является второстепенным.
Состояние потока:
- выполняющийся
- готовый к выполнению
- приостановленный
- заблокированный
- завершенный
наиболее используемые члены класса |
|
Thread(delegate) | создание объекта класса Thread, в качестве параметра передается делегат, указывающий на метод, выполняющий поток |
Sleep() | приостанавливает поток на заданное время в миллисекундах 1 секунда = 1000 миллисекунд |
Thread(delegate)
Main.cs
using
System;
//подключить пространство имен
using
System.Threading;
class
One {
-
public
void
Print() {
-
for
(
int
i=0; i<25; i++) {
-
Console.Write(
"1"
);
-
}
-
Console.WriteLine();
-
}
}
class
Two {
-
public
void
Print() {
-
for
(
int
i=0; i<25; i++) {
-
Console.Write(
"2"
);
-
}
-
Console.WriteLine();
-
}
}
class
Program {
-
//метод Main() является приоритетным потоком и создается по умолчанию
-
public
static
int
Main() {
-
//главный поток выводит цифру 1
-
One O =
new
One();
-
O.Print();
-
//следующий поток выводит цифру 2
-
//конструктору передается делегат, который скрыт от нас и принимает имя метода
-
Two T =
new
Two();
-
Thread Th =
new
Thread(T.Print);
-
//метод запускает поток
-
Th.Start();
-
Console.ReadKey();
-
return
0;
-
}
}
using
System;
//подключить пространство имен
using
System.Threading;
class
One {
-
public
void
Print() {
-
for
(
int
i=0; i<25; i++) {
-
Console.Write(
"1"
);
-
}
-
Console.WriteLine();
-
}
}
class
Two {
-
public
void
Print() {
-
for
(
int
i=0; i<25; i++) {
-
Console.Write(
"2"
);
-
}
-
Console.WriteLine();
-
}
}
class
Program {
-
//метод Main() является приоритетным потоком и создается по умолчанию
-
public
static
int
Main() {
-
//главный поток выводит цифру 1
-
One O =
new
One();
-
O.Print();
-
//следующий поток выводит цифру 2
-
//конструктору передается делегат, который скрыт от нас и принимает имя метода
-
Two T =
new
Two();
-
Thread Th =
new
Thread(T.Print);
-
//метод запускает поток
-
Th.Start();
-
Console.ReadKey();
-
return
0;
-
}
}
1111111111111111111111111
2222222222222222222222222
2222222222222222222222222
Sleep()
Main.cs
using
System;
//подключить пространство имен
using
System.Threading;
class
Program {
-
public
static
int
Main() {
-
string
str =
"Привет Мир!"
;
-
//вывод каждой буквы с задержкой в 0,4 секунды
-
foreach
(var i
in
str) {
-
Console.Write(i);
-
Thread.Sleep(400);
-
}
-
Console.WriteLine();
-
Console.ReadKey();
-
return
0;
-
}
}
using
System;
//подключить пространство имен
using
System.Threading;
class
Program {
-
public
static
int
Main() {
-
string
str =
"Привет Мир!"
;
-
//вывод каждой буквы с задержкой в 0,4 секунды
-
foreach
(var i
in
str) {
-
Console.Write(i);
-
Thread.Sleep(400);
-
}
-
Console.WriteLine();
-
Console.ReadKey();
-
return
0;
-
}
}
Привет Мир!