1

在 .net 中强制等待异步方法调用??例如,我有一个不想等待的 redis set 命令。

 .....statements....
await redis.Hashes.Set(db, mainKey, value);
.....statements after set command......

我不想在 set 命令中暂停我的方法的执行。所以我删除了“等待”。

.....statements....
redis.Hashes.Set(db, mainKey, value);
....statements after set command......

这是一个好习惯吗??

4

1 回答 1

2

您可以选择不等待任务,但我不确定这是一个好习惯。如果在被调用的任务中抛出异常,您将不知道它们。

请参阅https://msdn.microsoft.com/en-gb/library/hh965065.aspx

此外,Booksleeve 已经被弃用了一段时间,取而代之的是StackExchange.Redis。如果可能的话,您可能应该考虑使用它。

StackExchange.Redis 有一个CommandFlags.FireAndForget参数,您可以指定该参数将立即返回默认值,而不是等待命令完成。

connection.GetDatabase().HashSet(key, field, value, flags: CommandFlags.FireAndForget)

FireAndForget 的文档

于 2016-06-02T17:25:53.713 回答