Concurrency and Coordination Runtime
Concurrency and Coordination Runtime (CCR) - бибилотека для работы с параллельными и асинхронными потоками данных, базирующаяся на .NET Framework от Microsoft, поставляемая в комплекте с Microsoft Robotics Developer Studio (MSRDS). Несмотря на то, что данная бибилиотека поставляется с MSRDS, сфера ее применения не ограничена лишь моделированием поведения робототехники, а также может применяться для улучшения асинхронности в любых приложениях.
CCR-библиотека содержит класс Dispatcher, реализующий набор для работы с потоками, с фиксированным числом потоков, все из которых могут выполняться одновременно. Каждый диспетчер содержит очередь (называемую DispatcherQueue) делегатов, представляющие собой точку входа в процедуру (называемая еще work item или операцией), которая может быть выполнена асинхронно. Операции передаются потокам для выполнения. Объект-диспетчер также содержит обобщённый Port, представляющий собой очередь, в которую помещается результат асинхронного выполнения операции. Каждая операция может быть ассоциирована с объектом ReceiverTask, который использует результат для дальнейшей обработки. Arbiter управляет полученными задачами ReceiverTask и вызывает их когда результат, который они ожидают, готов и помещен в очередь Port.
В октябре 2008 года библиотека CCR стала доступна в виде отдельного продукта вместе с средством Decentralized Software Services под названием CCR and DSS Toolkit 2008. [1]