1

我有以下代码:

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() 调用我从如何将参数传递给 Thread 中的 ThreadStart 方法?

4

2 回答 2

3

这样:

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

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

userThread.Start();
于 2012-11-21T11:20:31.150 回答
3

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

于 2012-11-21T11:20:41.153 回答