C# 如何制作';等待&x27;对于返回异步函数时的多变量

C# 如何制作';等待&x27;对于返回异步函数时的多变量,c#,asynchronous,xamarin,async-await,task-parallel-library,C#,Asynchronous,Xamarin,Async Await,Task Parallel Library,我有一个async功能: public async Task<List<Data>> GetDataAsync() { //get data return new List<Data>; //but then filled with real data } 这样,当函数完成获取数据时,listView将被弹出 现在,我想将相同的列表保存到一个变量中,但不需要再次调用sc.GetSensorDataAsync() 我试过这个: List<

我有一个
async
功能:

public async Task<List<Data>> GetDataAsync()
{
    //get data
    return new List<Data>; //but then filled with real data
}
这样,当函数完成获取数据时,listView将被弹出

现在,我想将相同的
列表
保存到一个变量中,但不需要再次调用
sc.GetSensorDataAsync()

我试过这个:

List<Data> data = await sc.GetSensorsAsync();
listView.ItemsSource = data;
List data=wait sc.GetSensorsAsync();
listView.ItemsSource=数据;
但是由于函数是异步的,它将执行
listView.ItemsSource=data数据
变量仍然为

如何解决此问题,以使
listView.ItemsSource
data
都包含返回值

但由于函数是异步的,它将执行 listView.ItemsSource=数据;当数据变量仍然为空时

不,异步等待不是这样工作的。异步方法仅在异步方法完成后执行延续(在
wait
之后的行)。这意味着,可以保证
GetSensorsAsync
将在下一行将列表分配给
ListView.ItemSource
之前完成

如果您正在接收一个
null
值,那么这只是因为您的方法正在返回
null

但由于函数是异步的,它将执行 listView.ItemsSource=数据;当数据变量仍然为空时

不,异步等待不是这样工作的。异步方法仅在异步方法完成后执行延续(在
wait
之后的行)。这意味着,可以保证
GetSensorsAsync
将在下一行将列表分配给
ListView.ItemSource
之前完成


如果您正在接收一个
null
值,那么这仅仅是因为您的方法返回
null

,而是因为函数是异步的,它将执行listView.ItemsSource=data;当数据变量仍然为空时
在分配数据之前放置wait怎么可能?方法可能返回null?
但由于函数是异步的,它将执行listView.ItemsSource=data;当数据变量仍然为空时
在分配数据之前放置wait怎么可能?可能方法正在返回null?
List<Data> data = await sc.GetSensorsAsync();
listView.ItemsSource = data;