3.1. Spuštění vlákna

Práce s vlákny v jazyce C# je obdobná přístupu z jazyka Java. Vlákno je reprezentováno objektem typu System.Threading.Thread. Tomuto objektu je v konstruktoru předán delegát typu System.Threading.ThreadStart, jenž zastupuje metodu bez parametrů realizující tělo vlákna. Spuštění vlákna pak provede metoda Start objektu vlákna.

src/Vlakno.cs
Příklad 3.1. Spuštění vlákna v jazyce C#

Následující program vytvoří dvě paralelní vlákna, která vždy vypíšou své jméno a pak čekají zadaný počet milisekund.

	
using System;
using System.Threading;

public class Vlakno 
{
	string jmeno;
	int interval;

	public Vlakno(string jmeno, int interval)
	{
		this.jmeno = jmeno;
		this.interval = interval;
	}

	public void Run() 
	{
		while( true ) {
			Console.WriteLine("Vlakno {0}", jmeno);
			Thread.Sleep(interval);
		}
	}

	public static void Main() 
	{
		Vlakno v1 = new Vlakno("v1", 500);
		Vlakno v2 = new Vlakno("v2", 1000);
		
		Thread t1 = new Thread(new ThreadStart(v1.Run));
		Thread t2 = new Thread(new ThreadStart(v2.Run));
		t1.Start();
		t2.Start();
		t1.Join();
		t2.Join();
	}
}