我有一个服务,它有一堆传入的订单,我将其存储到一个IReliableDictionary中。随着新订单的到来,我需要在我的程序的整个生命周期中更新和维护这些订单的单独排序列表。
我如何有效地和并发地将IReliableDictionary中的数据转移到一个不同的排序集合中,从而避免死锁,并且不必每次出现新的订单时都从头开始重新构建排序列表?
编辑:在查看了文档之后,我相信我可以通过在提交之前进行更新之后更新本地内存排序集合来实现这一点。
using (var tx = this.StateManager.CreateTransaction())
{
bool addOk = await orderDictionary.TryAddAsync(tx, 123, someOrderToAdd);
if (addOk)
{
this.SortedOrders.Add(someOrderToAdd);
}
await tx.CommitAsync();
}能否确认我对文档的理解是正确的,并且像上面的实现这样的东西不会导致并发问题?
发布于 2018-05-30 09:55:32
可以使用可靠的集合通知并将其存储在排序列表中。这将确保您不会错过与字典相关的事件。
https://stackoverflow.com/questions/50558572
复制相似问题