Mega Code Archive

 
Categories / C# Book / 10 Thread
 

0634 Passing Data to a Thread

We can pass a lambda expression to a thread: using System; using System.Threading; class ThreadTest { static void Main() { Thread t = new Thread(() => Print("Hello from t!")); t.Start(); } static void Print(string message) { Console.WriteLine(message); } } The output: Hello from t! Another technique is to pass an argument into Thread's Start method: using System; using System.Threading; class ThreadTest { static void Main() { Thread t = new Thread(Print); t.Start("Hello from t!"); } static void Print(object messageObj) { string message = (string)messageObj; // We need to cast here Console.WriteLine(message); } } The output: Hello from t! Thread's constructor is overloaded to accept either of two delegates: public delegate void ThreadStart(); public delegate void ParameterizedThreadStart (object obj);