Concurrency and Coordination Runtime (CCR) es una biblioteca de programación asincrónica basada en .NET Framework de Microsoft distribuida con Microsoft Robotics Developer Studio (MRDS). Aunque viene con MRDS, no se limita a modelar el comportamiento robótico, sino que se puede utilizar para expresar un comportamiento asincrónico en cualquier aplicación.
El tiempo de ejecución de CCR incluye una Dispatcher
clase que implementa un grupo de subprocesos, con un número fijo de subprocesos , todos los cuales pueden ejecutarse simultáneamente. Cada despachador incluye una cola (llamada DispatcherQueue
) de delegados , que representan el punto de entrada a un procedimiento (llamado elemento de trabajo ) que se puede ejecutar de forma asincrónica. Luego, los elementos de trabajo se distribuyen entre los subprocesos para su ejecución. Un objeto despachador también contiene un genérico Port
que es una cola donde se coloca el resultado de la ejecución asincrónica de un elemento de trabajo. Cada elemento de trabajo se puede asociar con un ReceiverTask
objeto que consume el resultado para su posterior procesamiento. An Arbiter
gestiona elReceiverTask
y los invoca cuando el resultado que esperan está listo y puesto en la Port
cola.
En mayo de 2010, el CCR estuvo disponible junto con todo el Robotics Developer Studio en un solo paquete, de forma gratuita. Microsoft Robotics Developer Studio 2008 R3. [1]