Asynchronous 异步方法不能返回void-我如何处理它?

Asynchronous 异步方法不能返回void-我如何处理它?,asynchronous,xamarin,xamarin.forms,Asynchronous,Xamarin,Xamarin.forms,我有一个电话申请表。当屏幕显示时,我启动如下计时器: base.OnAppearing(); { timerRunning = true; Device.BeginInvokeOnMainThread(() => showGridTime(5)); } async void showGridTime(int time) { while (timerRunning) { var tokenSource = new Canc

我有一个电话申请表。当屏幕显示时,我启动如下计时器:

 base.OnAppearing();
 {
     timerRunning = true;
     Device.BeginInvokeOnMainThread(() => showGridTime(5));
 }
 async void showGridTime(int time)
 { 
     while (timerRunning)
     {
         var tokenSource = new CancellationTokenSource();
         await Task.Delay(time, tokenSource.Token);
         detailGrid.IsVisible = true;
     }
 }
代码似乎可以工作,但是IDE中有一条警告消息说异步方法不能返回null

鉴于此代码,是否有人可以帮助我并就我应返回的内容提供建议,以及我是否以正确的方式执行此操作?

只需返回任务:

async Task ShowGridTimeAsync(int time)
 { 
     while (timerRunning)
     {
         var tokenSource = new CancellationTokenSource();
         await Task.Delay(time, tokenSource.Token);
         detailGrid.IsVisible = true;
     }
 }
这对于让此方法的调用方知道何时完成并相应地采取行动是必要的

不建议创建
异步void
方法,除非您正在创建事件或为了满足接口签名而被迫创建事件。

只需返回任务:

async Task ShowGridTimeAsync(int time)
 { 
     while (timerRunning)
     {
         var tokenSource = new CancellationTokenSource();
         await Task.Delay(time, tokenSource.Token);
         detailGrid.IsVisible = true;
     }
 }
这对于让此方法的调用方知道何时完成并相应地采取行动是必要的

不建议创建
异步void
方法,除非您正在创建事件或为了满足接口签名而被迫这样做。

不要返回void。返回
任务
。任务可能重复,但不要返回void。返回
任务
。任务可能重复