我有以下功能,我想在 a 中使用它System.Threading.Thread
:
private void tempFunction(int num, out string fullname, out string info)
{
// Doing a very long scenario.
// When finished, send results out!
fullname = result1;
info = result2;
}
我尝试在 (button_Click) 事件处理程序中使用以下代码:
private void submit_Button_Click(object sender, RoutedEventArgs e)
{
string Fullname = string.Empty, Info = string.Empty;
int index = 132;
Thread thread = new Thread(() => tempFunction(index, out Fullname, out Info));
thread.Start();
thread.Join();
// I always use "MessageBox" to check if what I want to do was done successfully
MessageBox.Show(Fullname + "\n" + Info);
}
你可以看到我使用thread.Join();
的是因为我需要等到线程完成才能获得线程进程的结果。
但是上面的代码似乎不起作用,它只是冻结了,我不知道为什么!
所以我肯定做错了什么,你能告诉我如何做我想做的事吗?