异步或并行任务 - C#

时间:2018-01-26 10:35:15

标签: c# asynchronous async-await task-parallel-library

我有一个应用程序需要执行两个I / O任务:获取GPS位置,通过蓝牙检索一些数据。这两项任务都可以在不同时间内完成,并且可能需要很长时间。为了提高应用程序的速度,我想同时启动两个活动,然后等待两个活动完成再继续。

如果我这样做:

bool locationStatus= await GetCurrentLocation();
bool vehicleStatus = await GetVehicleData();

第二个功能是否被启动,或者它只是未被阻止的UI?

我是否需要调用并行任务?

1 个答案:

答案 0 :(得分:6)

您正在等待第一个功能。如果要让函数完全异步,则必须将await放在需要变量的位置。

例如:

var locationStatus = GetCurrentLocation();
var vehicleStatus = GetVehicleData();

if (await locationStatus && await vehicleStatus)
{
    // Do stuff
}