0
如何使任務阻塞當前線程中的代碼執行?像Windows窗體ShowDialog()方法:C#UWP任務,將阻止在UWP中執行代碼
int a = 1;
Form2 f2 = new Form2();
f2.ShowDialog();
int b = 2;
我已經創建了自定義消息框控件,我需要實現此功能。
如何使任務阻塞當前線程中的代碼執行?像Windows窗體ShowDialog()方法:C#UWP任務,將阻止在UWP中執行代碼
int a = 1;
Form2 f2 = new Form2();
f2.ShowDialog();
int b = 2;
我已經創建了自定義消息框控件,我需要實現此功能。
我建議您應該嘗試實施async/await
版本而不是PushFrame
版本。
你可以閱讀this article瞭解更多關於PushFrame
。但是這將不再被UWP支持。
執行async/await
版本。您需要返回Task
或ShowDialog
方法中具有GetAwaiter
方法的任何其他類。然後使用AutoResetEvent
/ManualResetEvent
運行任務和WaitOne
。在您的CustomMessageBox
的Closed
事件中,Set
的AutoResetEvent
/ManualResetEvent
要讓Task
返回。然後您的ShowDialog
將繼續由您的await.
Form2應該有'OnClosed'事件。您可以將您的代碼移動到您想要執行的任何位置,然後執行到「OnClosed」。 – AVK