我不確定這裏發生了什麼。如果我做線程無法運行,除非等待
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);'沒有。幾次發生在我身上。 –