【发布时间】:2016-11-11 19:35:43
【问题描述】:
我想在异步事件侦听器方法中显示进度对话框。现在,UI 组件仅在异步方法执行完成后才可见。这是我的代码:
async void process_Click(object sender, EventArgs e)
{
launchRingProgressDialog();
var comp = await Start();
}
public void launchRingProgressDialog()
{
Activity.RunOnUiThread(() =>
{
ProgressDialog ringProgressDialog = ProgressDialog.Show(Activity, "Processing", "Please wait", true);
ringProgressDialog.SetCancelable(true);
});
}
当我在异步方法之外调用方法launchRingProgressDialog()时显示进度对话框,但在异步方法运行时不显示。如何使异步方法不阻塞 UI 组件?
编辑
据我了解,异步方法在 UI 线程内运行,因此不需要 RunOnUiThread。我已将代码更改如下,但我仍然面临同样的问题。
async void process_Click(object sender, EventArgs e)
{
ringProgressDialog = ProgressDialog.Show(Activity, "Processing", "Please wait", true);
var comp = await Start();
ringProgressDialog.Dismiss();
}
【问题讨论】:
标签: c# android asynchronous