我不确定这里发生了什么。如果我做线程无法运行,除非等待
Task.Run(() =>
{
System.Windows.MessageBox.Show("abc");
Thread.Sleep(5000);
}).Wait();
这将正常执行和程序工作正常等,但如果我这样做
Task.Run(() =>
{
System.Windows.MessageBox.Show("abc");
Thread.Sleep(5000);
});
什么也没有发生!
在第二种情况下线程不启动。我使用visual studio,我做的最后一件事是在异步方法上工作,然后intellisence崩溃或什么。从那时起,除非我等待它,否则我无法在自己的应用程序中启动一个新线程,从而破坏了目的。
如果我尝试像在不同的项目中的第一种情况下启动线程,它工作正常。
任何人有一个想法什么是错的?
编辑:好的我在窗体上做了一个新按钮并添加了一个单击事件。我把这个代码在一个新的方法在不同的类:
Task.Run(() =>
{
MessageBox.Show("abc");
});
当从一个类由新按钮的事件处理函数调用它工作正常。
但是,如果我从旧按钮调用相同的方法,它不会触发,尽管按钮事件本身触发。因此,在该按钮的事件处理程序方法中创建的线程不会运行...
那么我想解决它。
我觉得这很难相信。你确定这不仅仅是你的应用程序在任务实际开始之前完成了吗?请提供证明问题的[mcve]。 –
当视觉工作室崩溃时,通过按钮的“属性”窗口设置的按钮的单击事件未正确设置。当你重新启动时,代码保持不变,但按钮。 'button.Click + = new EventHandler(button_Click);'没有。几次发生在我身上。 –