Каковы будут последствия неприменения ключевого слова await перед вызовом asyn c в C# - PullRequest
0 голосов
/ 27 мая 2020

У меня есть кодовый блок, как показано ниже

public async Task GeneratePE(string ackLevel, string messagingProtocol)
{
    Microsoft.Azure.Devices.Client.Message msg = await this.FormMessage(ackLevel);
    Trace.WriteLine($"D2C message send start time: {DateTime.Now.ToString("yyyyMMddHHmmss")}");
    this.InitializeDeviceClient(messagingProtocol);
    this.deviceClient.SendEventAsync(msg);         
    await this.ReceiveC2dAsync(3, "create", "abc", "protocol");
}

В строке this.deviceClient.SendEventAsync(msg) ожидание не указано. Я отправляю сообщение в этой строке, а в следующей строке this.ReceiveC2dAsync(3, "create", "abc", "protocol") я ищу, чтобы получить его из другого места.

Мой тест отлично работает с приведенным выше фрагментом кода. Но он также периодически терпит неудачу в ожидании получения сообщения. В любом случае сбой случаен.

...