这两个都有效,但第一个结果是警告在被叫GetDateRanges
之后继续执行并且我应该使用await
。调用是在构造函数中,所以我认为我不能这样做。
鉴于结果相同,这些代码片段之间是否存在其他一些显着差异?是第一个举起主线程而我没有注意到?
public MainPage(IDateRangeRepository dateRangeRepository)
{
GetDateRanges();
}
async Task GetDateRanges()
{
var ranges = await dateRangeRepository.FetchDateRangesAsync(
DateTime.Now, DateTime.Now);
calendar.DateRanges = ranges;
}
使用Task.Run ...
public MainPage(IDateRangeRepository dateRangeRepository)
{
Task.Run(GetDateRanges);
}
async Task GetDateRanges()
{
var ranges = await dateRangeRepository.FetchDateRangesAsync(
DateTime.Now, DateTime.Now);
Device.BeginInvokeOnMainThread(() =>
{
calendar.DateRanges = ranges;
});
}