Vorweg:
Hier geht es nur um .NET 2.0, neuere Frameworkversionen haben bessere Funktionen und mehr Möglichkeiten.

Beginnen wir:
Was ist Threading?
Es ist es – ungenau betrachtet – eine parallele Abarbeitung von Aufträgen, also einfach ausgedrückt, es wird versucht mehr als eine Sache gleichzeitig zu machen.
Also was ist dann ein Thread?
Sagen wir einfach mal es sei ein Platz an dem Code ausgeführt wird.

Einführung:

Das .Net Framework wurde schon von Grund auf dafür designed, multithreading fähig zu sein.
Ich zitiere hier mal einfach aus dem MSDN:

Der System.Threading-Namespace stellt Klassen und Schnittstellen bereit, die die Programmierung mit mehreren Threads unterstützen und Aufgaben wie das Erstellen und Starten neuer Threads, die Synchronisierung mehrerer Threads sowie das Anhalten und das Abbrechen von Threads vereinfachen.

Laut diesem Abschnitt soll es ganz einfach sein Threads zu starten und zu beenden.
Das ist es auch. Die Schwierigkeit kommt es mit der Abstimmung untereinander, also dem Ressourcenmanagement zwischen Threads.

Wie starte ich einen Thread?

Wie man aus dem MSDN-Artikel entnehmen konnte, wird also der Namespace „System.Threading“ benötigt, welchen wir über

 using System.Threading 

einbinden können.

Nun zum eigentlichen Grundcode eines Threads.
Zuerst müssen wir einen ThreadStart anlegen und definieren, welche Methode er ausführen soll.

ThreadStart startThread = new ThreadStart(myClassObject.myMethod); 

Zwischeninfo: Es wird jetzt auffallen, dass wir der Methode keine Parameter übergeben konnten. Das ist so auch richtig, dazu aber später mehr.

Daraufhin muss man den Thread mit dem ThreadStart als Parameter anlegen:

Thread myThread = new Thread(startThread);

Nun starten wir den Thread ganz einfach mit

myThread.Start(); 

Fortsetzung folgt…