如何在c#中传递参数给Thread.ThreadStart()方法?
假设我有一个叫做download的方法
public void download(string filename)
{
// download code
}
现在我已经在main方法中创建了一个线程:
Thread thread = new Thread(new ThreadStart(download(filename));
预期的方法类型错误。
我如何通过参数ThreadStart与目标方法参数?
看看这个例子:
public void RunWorker()
{
Thread newThread = new Thread(WorkerMethod);
newThread.Start(new Parameter());
}
public void WorkerMethod(object parameterObj)
{
var parameter = (Parameter)parameterObj;
// do your job!
}
你首先通过将delegate传递给worker方法来创建一个线程,然后用thread启动它。Start方法,该方法将对象作为参数。
所以在你的例子中,你应该这样使用它:
Thread thread = new Thread(download);
thread.Start(filename);
但是你的“download”方法仍然需要以object而不是string作为参数。你可以在方法体中将其转换为字符串。