Concurrency and Coordination Runtime (CCR) is an
asynchronous programming
Asynchrony, in computer programming, refers to the occurrence of events independent of the main program flow and ways to deal with such events. These may be "outside" events such as the arrival of signals, or actions instigated by a program that t ...
library based on
.NET Framework from
Microsoft
Microsoft Corporation is an American multinational corporation and technology company, technology conglomerate headquartered in Redmond, Washington. Founded in 1975, the company became influential in the History of personal computers#The ear ...
distributed with
Microsoft Robotics Developer Studio (MRDS). Even though it comes with MRDS, it is not limited to modelling robotic behavior but can be used to express asynchronous behavior in any application.
CCR runtime includes a
Dispatcher
class that implements a Thread pool, with a fixed number of
threads, all of which can execute simultaneously. Each dispatcher includes a queue (called
DispatcherQueue
) of
delegates, which represent the entry point to a
procedure (called ''work item'') that can be executed asynchronously. The work items are then distributed across the threads for execution. A dispatcher object also contains a
generic Port
which is a queue where the result of the asynchronous execution of a work item is put. Each work item can be associated with a
ReceiverTask
object which consumes the result for further processing. An
Arbiter
manages the
ReceiverTask
and invokes them when the result they are expecting is ready and put on the
Port
queue.
In May 2010, the CCR was made available along with the entire Robotics Developer Studio in one package, for free. ''Microsoft Robotics Developer Studio 2008 R3.''
MSRDS 2008 R3 Release Notes (MSDN Library)
/ref>
CCR was last updated in RDS R4 in 2012. It is no longer under development. Asynchronous programming is now supported in Visual Studio languages such as C# through built-in language features.
See also
*Parallel Extensions
Parallel Extensions was the development name for a managed concurrency library developed by a collaboration between Microsoft Research and the CLR team at Microsoft. The library was released in version 4.0 of the .NET Framework. It is compos ...
*Joins Join may refer to:
* Join (law), to include additional counts or additional defendants on an indictment
*In mathematics:
** Join (mathematics), a least upper bound of sets orders in lattice theory
** Join (topology), an operation combining two top ...
* Microsoft Robotics Developer Studio
References
External links
CCR: MSDN Magazine
CCR: Channel9 Interview
CCR and DSS Toolkit 2008 homepage
Concurrency and Coordination Runtime MSDN Documentation
{{.NET Framework
.NET software
Concurrent programming libraries
Robotics suites