Возможно ли вложить QueuedTaskSchedulers? - PullRequest
0 голосов
/ 19 февраля 2020

Я пытаюсь реализовать следующий сценарий:

TaskScheduler HighPrioScheduler = new QueuedTaskScheduler().ActivateNewQueue(0);
TaskScheduler MediumPrioScheduler = new QueuedTaskScheduler().ActivateNewQueue(1);
TaskScheduler LowPrioScheduler = new QueuedTaskScheduler().ActivateNewQueue(2);

void HandleWebRequest(SomeRequest request)
{
    if(request.Prio == Prio.High)
        HandleWebRequestWithScheduler(request, new QueuedTaskScheduler(HighPrioScheduler, 4));
    if(request.Prio == Prio.Medium)
        HandleWebRequestWithScheduler(request, new QueuedTaskScheduler(MediumPrioScheduler, 4));
    if(request.Prio == Prio.Low)
        HandleWebRequestWithScheduler(request, new QueuedTaskScheduler(LowPrioScheduler, 4));
}

Я хочу иметь 3 очереди планирования с глобальным приоритетом, чтобы задачи, созданные высокоприоритетными WebRequestHandlers, выполнялись первыми. Кроме того, все WebRequestHandlers должны иметь ограниченную степень параллелизма. Реален ли такой подход с использованием QueuedTaskScheduler из библиотеки ParallelExtensionsExtra ?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...