Concurrency and Coordination Runtime (CCR) es una biblioteca de programación asincrónica basada en .NET Framework de Microsoft que se distribuye 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 el comportamiento asincrónico en cualquier aplicación.
El entorno de ejecución de CCR incluye una Dispatcher
clase que implementa un grupo de subprocesos, con una cantidad fija 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. Un Arbiter
administra los ReceiverTask
y los invoca cuando el resultado que esperan está listo y se coloca en la Port
cola.
En mayo de 2010, el CCR se puso a disposición junto con todo el Robotics Developer Studio en un solo paquete, de forma gratuita. Microsoft Robotics Developer Studio 2008 R3. [1]
La última actualización de CCR fue en RDS R4 en 2012. Ya no se encuentra en desarrollo. Ahora, la programación asincrónica es compatible con lenguajes de Visual Studio como C# a través de funciones de lenguaje integradas.