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