Swapnil Gupta Swapnil Gupta - 15 days ago 6
C# Question

How to pass parameters to ThreadStart method in Thread?

How to pass parameters to

Thread.ThreadStart()
method in C#?

Suppose I have method called 'download'

public void download(string filename)
{
// download code
}


Now I have created one thread in the main method:

Thread thread = new Thread(new ThreadStart(download(filename));



error method type expected.


How can I pass parameters to
ThreadStart
with target method with parameters?

Answer

The simplest is just

string filename = ...
Thread thread = new Thread(() => download(filename));
thread.Start();

The advantage(s) of this (over ParameterizedThreadStart) is that you can pass multiple parameters, and you get compile-time checking without needing to cast from object all the time.