2017-09-22 59 views
0

如何使任务阻塞当前线程中的代码执行?像Windows窗体ShowDialog()方法:C#UWP任务,将阻止在UWP中执行代码

int a = 1; 

Form2 f2 = new Form2(); 
f2.ShowDialog(); 

int b = 2; 

我已经创建了自定义消息框控件,我需要实现此功能。

+0

Form2应该有'OnClosed'事件。您可以将您的代码移动到您想要执行的任何位置,然后执行到“OnClosed”。 – AVK

回答

0

我建议您应该尝试实施async/await版本而不是PushFrame版本。

你可以阅读this article了解更多关于PushFrame。但是这将不再被UWP支持。


执行async/await版本。您需要返回TaskShowDialog方法中具有GetAwaiter方法的任何其他类。然后使用AutoResetEvent/ManualResetEvent运行任务和WaitOne。在您的CustomMessageBoxClosed事件中,SetAutoResetEvent/ManualResetEvent要让Task返回。然后您的ShowDialog将继续由您的await.