如果等待任务被取消,则从异步void方法返回的最佳方法

时间:2017-07-16 22:24:02

标签: c# .net asynchronous async-await task

我正在编写一个Xamarin.Android应用程序(不需要域知识)。我有一个async void方法,如下所示:

protected override async void OnCreate(Bundle savedInstanceState)
{
    // Some synchronous code

    await SetupEditor(EditorTheme.Default);
}

我编写了自己的应用,以便在用户点击后退按钮时取消SetupEditor(...)返回的任务。但是,当我单击后退按钮时,应用程序会在此处使用TaskCanceledException崩溃。我想把它重写为

protected override async void OnCreate(Bundle savedInstanceState)
{
    // Some synchronous code

    try
    {
        await SetupEditor(EditorTheme.Default);
    }
    catch (TaskCanceledException)
    {
        return;
    }
}

如果不使用try / catch块,是否有更简洁的方法可以做到这一点?每次我想等待这样的任务时,我都不想写7行。感谢。

0 个答案:

没有答案