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。返回任务
。任务可能重复