У меня есть служба, в которой есть несколько входящих заказов, которые я сохраняю в 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();
}
Может ли кто-нибудь подтвердить, что мое понимание документации верно и что что-то подобное вышеописанной реализации не вызовет проблем параллелизма?