У меня есть пул серверов, который используется для загрузки баланса. Эта работа разделена на отдельные рабочие элементы, однако невозможно определить, сколько времени займет данный рабочий элемент.TaskScheduler Количество задач, которые еще нужно обработать
Каждый сервер использует TPL для планирования работы над рабочими элементами. Чтобы по-настоящему загрузить баланс, мне нужно определить, сколько из каждого сервера заработало рабочие элементы.
Все, что мне нужно - это получить количество запланированных рабочих элементов для TaskScheduler по умолчанию. В идеале я мог бы использовать TaskSchduler.GetScheduleTasks, но этот метод защищен.
Очевидным решением является создание собственного пользовательского планировщика и отображение количества запланированных задач. Это далеко не идеальное решение, так как все, что мне нужно, это число, и реально я не буду писать как хороший TaskScheduler как стандартный. Я не могу найти реализацию Планировщика задачи по умолчанию. Если бы я мог, может быть, я мог унаследовать его? Любые идеи, как я могу это решить?
Чтобы быть более конкретным, мне нужно отслеживать созданные задачи и проверять их [IsCompleted] (http://msdn.microsoft.com/en-us/library/system.threading.tasks.task.iscompleted.aspx) имущество. У меня нет другого способа узнать, когда закончилась фактическая (или любая) задача. –