watki


// Przykład 1

public class Program
{
static void Main(string[] args)
{
CosRobi();
Console.WriteLine("Ciąg dalszy programu...");
Console.ReadKey();
}

static void CosRobi()
{
while (true)
{
Console.WriteLine("Coś się robi...");
}
}
}


// Przykład 2
// Dodaj using System.Threading;

public class Program
{
static void Main(string[] args)
{
Thread t = new Thread(new ThreadStart(CosRobi));
t.Start();

Console.WriteLine("Ciąg dalszy programu...");
Console.ReadKey();
}

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() + " ");
}
}
}

Wyszukiwarka