3 回答
TA贡献1906条经验 获得超10个赞
最简单的就是
string filename = ...
Thread thread = new Thread(() => download(filename));
thread.Start();
这个(结束ParameterizedThreadStart)的优点是你可以传递多个参数,并且你可以获得编译时检查而无需一直进行强制转换object。
TA贡献1789条经验 获得超8个赞
看看这个例子:
public void RunWorker()
{
Thread newThread = new Thread(WorkerMethod);
newThread.Start(new Parameter());
}
public void WorkerMethod(object parameterObj)
{
var parameter = (Parameter)parameterObj;
// do your job!
}
您首先通过将委托传递给worker方法来创建线程,然后使用Thread.Start方法启动它,该方法将您的对象作为参数。
所以在你的情况下你应该像这样使用它:
Thread thread = new Thread(download);
thread.Start(filename);
但是你的'下载'方法仍然需要取对象,而不是字符串作为参数。您可以将其强制转换为方法体中的字符串。
TA贡献1820条经验 获得超10个赞
您希望将ParameterizedThreadStart委托用于带参数的线程方法。(或者根本没有,让Thread构造函数推断。)
用法示例:
var thread = new Thread(new ParameterizedThreadStart(download));
//var thread = new Thread(download); // equivalent
thread.Start(filename)
- 3 回答
- 0 关注
- 942 浏览
添加回答
举报