首页 > 解决方案 > 在 c# Xamarin 中等待带有弹出窗口的任务

问题描述

在我的 Xamarin 表单项目中,我有两个弹出窗口一个接一个地显示。

await HandlePopup1(); // Shows popup1
await HandlePopup2(); // Shows popup2 

在这里,HandlePopup2 的任务不是等待 popup1 关闭。

如何处理这个。TIA。

标签: c#xamarinasync-await

解决方案


您需要将对话框设置为模型,但这取决于您的框架和您使用的内容。或者你可以使用一个AutoResetEvent(或某种同步对象),或者如果你想获得一个async浮动的变体。

using(var resetEvent = new AutoResetEvent(false))
{
    await HandlePopup1(resetEvent); // Shows popup1
    // Wait
    resetEvent.WaitOne();

    await HandlePopup2(); // Shows popup2
}

然后在您的对话框onclosed/onclosing方法(或类似方法)中。刚打Set

resetEvent.Set()

推荐阅读