When creating an application, you will face situations where you want to launch threads in order to keep the current process responsive. The System.Threading.Thread class is used for working with threads. It allows creating and accessing individual threads in a multithreaded application. The following codes shows how to launch a thread in different ways.
1. Starting A Thread
Regular Way
Thread thread = new Thread(new ThreadStart(MyFunction)); thread.Start(); Public void MyFunction() {}
Lambda Expression (C# 3.0 and above)
Thread thread = new Thread(() => MyFunction()); thread.Start(); Public void MyFunction() {}
2. Starting A Thread With Parameter
Regular Way
string parameterOne; Thread t = new Thread (new ParameterizedThreadStart(MyFunction)); t.Start (parameterOne); Public void MyFunction(string param) {}
Lambda Expression (C# 3.0 and above)
string param1 = "123"; int param2 = 321 Thread t = new Thread (() => MyFunction(param1, param2)); t.Start (); Public void MyFunction(string param1, int param2) {}
3. Starting A Thread with Return Value
object value = null; Thread thread = new Thread(() => { value = MyFunction("Hello World") }); thread.Start(); thread.Join(); Public void MyFunction(string param1) {}