static void CosRobi() { int x = 0; while (x<10) { Console.WriteLine("Coś się robi..."); x++; } } }
// Przykład 3 (abort) public class Program { static void Main(string[] args) { Thread t = new Thread(new ThreadStart(CosRobi)); t.Start(); Console.WriteLine("Ciąg dalszy programu..."); while (!t.IsAlive) ; // Wstrzymanie wątku głównego do czasu faktycznego uruchomienia wątku drugiego Thread.Sleep(1); // Blokowanie aktualnego wątku (main) na określony czas, // aby pozwolić metodzie CosRobi () na działanie przez pewien czas t.Abort(); // Zatrzymanie wątku drugiego Console.ReadKey(); } static void CosRobi() { try { while (true) Console.WriteLine("Coś się robi..."); } catch (ThreadAbortException ex) // ten wyjątek zostanie złapany po wykonaniu Abort() { Console.WriteLine(ex.Message); } } }
// Przykład 4 (join) public class Program { public static void Main() { Thread t2 = new Thread(new ThreadStart(OdliczajBiale)); // definicja wątku t2.Start();
OdliczajCzerowone(); // Wywolanie metody odliczajacej w pierwszym watku
Console.ReadKey(); }
public static void OdliczajBiale() { for (int i = 1000; i > 0; i--) { Console.ForegroundColor = ConsoleColor.White; Console.Write(i.ToString() + " "); } }
public static void OdliczajCzerowone() { for (int i = 1000; i > 0; i--) { Console.ForegroundColor = ConsoleColor.Red; Console.Write(i.ToString() + " "); } } }