我正在使用C#和Visual Studio 2010.这样可以,还是需要更改它?
public bool SomeFunction(string arg1)
{
bool ok = false;
var firstThread = new Thread(delegate()
{
ok = SomeFunction2(arg1);
});
firstThread.Start();
firstThread.Join();
return ok;
}
答案 0 :(得分:3)
假设您想在返回ok
之前等待线程完成(将捕获的变量ok
设置为新值),那么它对我来说很好。
答案 1 :(得分:2)
我不确定在另一个线程上运行多长时间 - 但是启动线程然后加入它会让我感到困惑,因为join调用导致调用线程被阻塞,直到另一个完成。
但是,如果您确实需要在另一个线程上运行该进程,请查找BackgroundWorker,因为它将使多线程变得非常容易。您附加到事件以管理后台线程,进度报告,取消和完成。
如果您需要帮助,请告诉我,但这是使用后台工作人员的一个很好的例子。
http://msdn.microsoft.com/en-us/library/cc221403(v=vs.95).aspx
答案 2 :(得分:0)
没关系。
答案 3 :(得分:0)
您的确切代码没有多大意义。但是如果你有一些理由在另一个线程上运行代码,那么这应该没问题。尽管使用返回值的Task
可能更好。