我使用WPF 4.5和MVVM卡利Micro和具有以下WPF代碼:以上WPF 4.5:如何創建子線程並繼續任務到UI主線程?
public class MainViewModel: Screen
{
public MainViewModel()
{
if (!ConnectServer())
{
Console.WriteLine("Connection failed");
return;
}
// Following method can only be run if server connection established
ProcessThis();
}
}
我的代碼只有一次機會來連接,如果失敗則顯示視圖,什麼也不做。如果我使用while(!ConnectServer()),它將一直阻塞UI線程,這意味着連接仍然失敗時,用戶不會顯示任何內容。這非常難看。
我想要什麼:
- 如果連接失敗,意味着ConnectServer的()返回false,應等待10秒鐘,然後嘗試重新連接,並再次(如調用一個方法RetryConnect())。直到它成功而不會阻塞 UI線程。
- 和連接後,它應該繼續到主線程並運行ProcessThis()。
理論上我知道它需要背景分離的線程,但我不知道如何實現它簡單和良好。請隨意使用我的示例代碼來解釋。先謝謝你。
這是異步/ AWAIT是什麼https://msdn.microsoft.com/en-us/library/hh191443.aspx –
['DispatcherTimer'](https://msdn.microsoft.com/ en-us/library/system.windows.threading.dispatchertimer(v = vs.110).aspx)fits。 – Sinatr