Concurrency and Coordination Runtime (CCR) - это библиотека асинхронного программирования на основе .NET Framework от Microsoft, распространяемая вместе с Microsoft Robotics Developer Studio (MRDS). Несмотря на то, что он поставляется с MRDS, он не ограничивается моделированием поведения роботов, но может использоваться для выражения асинхронного поведения в любом приложении.
Среда выполнения CCR включает Dispatcher
класс, реализующий пул потоков с фиксированным числом потоков , каждый из которых может выполняться одновременно. Каждый диспетчер включает очередь (называемую DispatcherQueue
) делегатов , которые представляют точку входа в процедуру (называемую рабочим элементом ), которая может выполняться асинхронно. Затем рабочие элементы распределяются по потокам для выполнения. Объект диспетчера также содержит общий объект, Port
который представляет собой очередь, в которую помещается результат асинхронного выполнения рабочего элемента. Каждый рабочий элемент может быть связан с ReceiverTask
объектом, который использует результат для дальнейшей обработки. Arbiter
УправляетReceiverTask
и вызывает их, когда ожидаемый результат готов и помещается в Port
очередь.
В мае 2010 года CCR стал доступен бесплатно вместе со всей Robotics Developer Studio в одном пакете. Microsoft Robotics Developer Studio 2008 R3. [1]
Последний раз CCR обновлялся в RDS R4 в 2012 году. Он больше не находится в разработке. Асинхронное программирование теперь поддерживается в языках Visual Studio, таких как C #, благодаря встроенным функциям языка.