Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Xamarin ProgressDialog_Android_Xamarin_Progressdialog - Fatal编程技术网

Android Xamarin ProgressDialog

Android Xamarin ProgressDialog,android,xamarin,progressdialog,Android,Xamarin,Progressdialog,我正在构建Xamarinandroid应用程序,我有一个功能需要一些时间。 现在,我试图显示一个ProgressDialog并执行该函数。 下面的代码没有显示进程对话框,我什么也看不到。你能帮帮我吗 private void BtButton_Click(object sender, System.EventArgs e) { ProgressDialog mDialog = new ProgressDialog(this); mDialog.SetMessage("Loadi

我正在构建
Xamarin
android应用程序,我有一个功能需要一些时间。 现在,我试图显示一个
ProgressDialog
并执行该函数。 下面的代码没有显示进程对话框,我什么也看不到。你能帮帮我吗

private void BtButton_Click(object sender, System.EventArgs e)
{

    ProgressDialog mDialog = new ProgressDialog(this);
    mDialog.SetMessage("Loading data...");
    mDialog.SetCancelable(false);
    mDialog.Show();

    Task t = Task.Run(() => { Foo(); });
    t.Wait();
    mDialog.Dismiss();
}

private void Foo()
{
    for (int i = 0; i < 10; i++)
    {
        Thread.Sleep(1000);
    }
}
private void BtButton\u单击(对象发送者,System.EventArgs e)
{
ProgressDialog mDialog=新建ProgressDialog(此);
mDialog.SetMessage(“正在加载数据…”);
mDialog.SetCancelable(假);
mDialog.Show();
Task t=Task.Run(()=>{Foo();});
t、 等待();
mDialog.discouse();
}
私人文件
{
对于(int i=0;i<10;i++)
{
睡眠(1000);
}
}

您正在通过调用
t.Wait()
阻止主线程,可以找到更多信息

相反,您可以这样做:

async void BtButton_Click(object sender, System.EventArgs e)
{
    var mDialog = new ProgressDialog(this);
    mDialog.SetMessage("Loading data...");
    mDialog.SetCancelable(false);
    mDialog.Show();

    await Task.Run((() => Foo()));
    // Alternatively
    // await Task.Delay(10000);

    mDialog.Dismiss();
}

void Foo()
{
    for (int i = 0; i < 10; i++)
    {
        Thread.Sleep(1000);
    }
}
async void BtButton\u单击(对象发送方,System.EventArgs e)
{
var mDialog=新建进度对话框(此对话框);
mDialog.SetMessage(“正在加载数据…”);
mDialog.SetCancelable(假);
mDialog.Show();
等待任务。运行((()=>Foo());
//或者
//等待任务。延迟(10000);
mDialog.discouse();
}
void Foo()
{
对于(int i=0;i<10;i++)
{
睡眠(1000);
}
}

注意:
ProgressDialog
在API第26级使用替代方案中被弃用。

非常感谢您的支持。我没有注意到它已被弃用,因此我需要寻找一个替代方案,并乐于提供帮助。祝你好运