Mobx автозапуск не стреляет

Ваш лучший вариант, как я вижу, это использовать TPL Dataflow 's ActionBlock:

var actionBlock = new ActionBlock(address =>
{
    if (!IsDuplicate(address))
    {
        LocateAddress(address);
    }
});

actionBlock.Post(context.Request.UserHostAddress);

TPL Dataflow надежный, потокобезопасный, async - уже и очень настраиваемая структура, основанная на актерах (доступна как nuget)

Вот простой пример для более сложного случая. Предположим, вы хотите:

  • Включить параллелизм (ограничено доступными ядрами).
  • Ограничить размер очереди (чтобы у вас не хватило памяти).
  • У вас есть LocateAddress и вставка очереди async.
  • Отменить все через час.

var actionBlock = new ActionBlock(async address =>
{
    if (!IsDuplicate(address))
    {
        await LocateAddressAsync(address);
    }
}, new ExecutionDataflowBlockOptions
{
    BoundedCapacity = 10000,
    MaxDegreeOfParallelism = Environment.ProcessorCount,
    CancellationToken = new CancellationTokenSource(TimeSpan.FromHours(1)).Token
});

await actionBlock.SendAsync(context.Request.UserHostAddress);

1
задан pdeva 4 March 2019 в 22:59
поделиться

1 ответ

Хорошо, очевидно, это было срабатывание, только то, что включение mobx-devtools делало вывод на печать в под-иерархии некоторого вывода, связанного с dev-tool

0
ответ дан pdeva 4 March 2019 в 22:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: