C# 处理数据时显示对话框

C# 处理数据时显示对话框,c#,uwp,C#,Uwp,我想在执行UI阻止任务时显示加载对话框,因此我执行了以下操作: public void retrievePosteInformation(字符串posteNumber) { ApplicationDataContainer localSettings=ApplicationData.Current.localSettings; //尝试在此处显示UI上的对话框 RecherchePosteDialog RecherchePosteDialog=新的RecherchePosteDialog();

我想在执行UI阻止任务时显示加载对话框,因此我执行了以下操作:

public void retrievePosteInformation(字符串posteNumber)
{
ApplicationDataContainer localSettings=ApplicationData.Current.localSettings;
//尝试在此处显示UI上的对话框
RecherchePosteDialog RecherchePosteDialog=新的RecherchePosteDialog();
_=recherchePosteDialog.ShowAsync();
//UI阻塞任务
foreach(文件路径中的KeyValuePair-keyval)
{
retrieveCSVInfo(keyval.Value、postnumber、keyval.Key);
}
//任务完成后,再次隐藏对话框
recherchePosteDialog.Hide();
}
但是这里根本没有显示
对话框。我不想使用
await
语句,因为程序会一直停留在
await recherchePosteDialog.ShowAsync()


我只想异步显示它,并在任务完成时隐藏它。

您可以尝试在带有ManualResetEvent的线程中运行它

当你打电话的时候

RetrieveWait.Set()

对话框被隐藏


例如:

private static ManualResetEvent RetrieveWait = new ManualResetEvent(false);

Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,
() =>
{
    RecherchePosteDialog recherchePosteDialog = new RecherchePosteDialog();
    recherchePosteDialog.ShowAsync();

    RetrieveWait.WaitOne()
    recherchePosteDialog.Hide();
});

LoadingIndicator
不会做这项工作吗?你是什么意思?像一个
ProgressRing
我在哪里设置它的可见性?你必须显示一个对话框吗?或者显示带有背景的
ProgressRing
是否足以掩盖内容(防止用户交互)?您看到控件了吗?没有,但这很有趣,我们会检查它。