我有以下代码:
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 命令,并显示警告状态:
由于不等待此调用,因此在调用完成之前继续执行当前方法。考虑将“等待”运算符应用于调用结果。
虽然最后一个命令
返回等待 trans.ExecuteAsync(flags);
表示该方法等待上述命令。为什么我收到警告?这是否与 Stackexchange.Redis Api 调用的实现有关,或者我错过了编写正确 CTP 代码的一些内容?