У меня есть следующий код:
var trans = conn.CreateTransaction();
trans.StringSetAsync(keyValuePairs, flags: flags);
trans.SortedSetAddAsync(KeyForAllMessages(), messages.Select(m => new KeyValuePair<RedisValue, double>(m.id, m.id)).ToArray());
trans.SortedSetAddAsync(threadKey, messages.Select(m => new KeyValuePair<RedisValue, double>(m.id, m.id)).ToArray()).GetAwaiter();
return await trans.ExecuteAsync(flags);
Приведенный выше код находится внутри асинхронного метода с именем:
общедоступная асинхронная задача CacheMessagesAsync(....)
VS 2013 подчеркивает три команды trans.XXX и отображает предупреждение, в котором говорится:
Поскольку этот вызов не ожидается, выполнение текущего метода продолжается до завершения вызова. Рассмотрите возможность применения оператора «ожидание» к результату вызова.
Хотя последняя команда
return await trans.ExecuteAsync (флаги);
означает, что метод ожидает вышеуказанных команд. Почему я получаю предупреждение? Это как-то связано с реализацией вызовов Stackexchange.Redis Api или я что-то упускаю из виду при написании правильного кода CTP?