参数线程失败

时间:2012-11-21 11:16:31

标签: c# multithreading

我有以下代码:

Thread userThread = new Thread(() => UserPasswordSpawn.InputBox(ref userName, ref password));
//UserPassWordSpawn.InputBox(ref userName, ref password);
/* do some calculations while user puts in data */

userThread.Join();

线程不起作用,并且永远不会进入InputBox()函数(我在那里设置断点,并且永远不会到达),而如果我执行注释部分它会正常工作(但是计算应该在系统正在等待用户输入数据)。如何正确生成具有2个输入参数的线程(两次参考字符串)。

注意,我得到的错误是关于Thread.JoinInternal()的,但主要的可能是该函数未被调用。

使用()=>进行的通话ThreadStart()我来自How to pass parameters to ThreadStart method in Thread?

2 个答案:

答案 0 :(得分:3)

由此:

Thread userThread = new Thread(() => UserPasswordSpawn.InputBox(ref userName, ref password));

您已创建新的thread个实例 现在你应该以这样的方式开始它:

userThread.Start();

答案 1 :(得分:3)

创建线程后,加入之前调用userThread.Start();