Thread

Поток — это независимая последовательность инструкций в программе.
Нужно подключить пространство имен 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;
  •  }
  • }
1111111111111111111111111
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;
  •  }
  • }
Привет Мир!