我正在使用C#开发Metro应用程序,我正在使用async和await关键字创建Metro异步操作(下载数据等)。我经常显示模态“请稍候”对话框。我想添加“取消”按钮到这个模态对话框中,以允许取消后台操作。但是我不确定如何取消处理任务...是否有任何示例可以做到这一点?
以下是我的任务示例:
// Starts task
public void StartTask()
{
// show the modal dialog with progress
_progressDialog.IsOpen = true;
_progressDialog.CancelClick += ProgressDialog_CancelClick;
await ToWork();
_progressDialog.IsOpen = false;
}
// Task which takes some seconds
private async Task DoWork()
{
await DownloadData();
await ProcessData();
}
// Cancel task
private void CancelClick(object sender, RoutedEventArgs e)
{
// hide the modal dialog with progress
_progressDialog.IsOpen = false;
// TODO: Cancel task
GoBack(this, e);
}
StartTask()
方法使用了ToWork()
,但我只看到了一个DoWork()
方法。这是有意为之吗? - Nolonar