我第一次尝试使用线程,并想出了这个:
Thread myThread = new Thread(() =>
{
test = Class1.getNumbers(param1, param 2);
MessageBox.Show(test.toString());
});
不过,这对我没有任何作用。我做错什么了?
我第一次尝试使用线程,并想出了这个:
Thread myThread = new Thread(() =>
{
test = Class1.getNumbers(param1, param 2);
MessageBox.Show(test.toString());
});
不过,这对我没有任何作用。我做错什么了?
你没有启动线程。
myThread.Start();
(您在 MessageBox 调用中也有语法错误......)
我第一次尝试使用线程
尽量避免直接使用 Thread 类。这是很少需要的。
调查:
或多或少按这个顺序。
它们都在线程之上提供层来帮助您。
从一本非常好的书中阅读这个免费章节(诚实的插件 - 这里没有激励):
它很简洁,并以渐进的方式为您提供所需的专业知识,因此您不会太快太高水平。你的问题的答案在前几段......
您需要通过调用来启动线程Start
。
此外,重要的是要注意MessageBox.Show
泵送消息。这就是为什么它在没有显式调用该线程的情况下正常工作1的原因。Application.Run
但是,大多数 UI 表单和控件都不能以这种方式工作。通常不要尝试从工作线程访问或创建任何 UI 元素。
1从技术上讲, AMessageBox
可以从主 UI 线程以外的线程工作,但它可能会导致一些奇怪的问题。例如,此消息框可能会卡在 UI 线程显示的模式对话框后面。正是由于这个原因,不建议从工作线程显示 UI 元素,即使它们是通过像Form.ShowDialog
or之类的自泵调用来显示的MessageBox.Show
。