我有以下代码:
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?
答案 0 :(得分:3)
由此:
Thread userThread = new Thread(() => UserPasswordSpawn.InputBox(ref userName, ref password));
您已创建新的thread
个实例
现在你应该以这样的方式开始它:
userThread.Start();
答案 1 :(得分:3)
创建线程后,加入之前调用userThread.Start();
。