Concurrency and Coordination Runtime
Encyclopedia
Concurrency and Coordination Runtime (CCR) is an asynchronous programming library based on .NET Framework
from Microsoft
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
, 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
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.
.NET Framework
The .NET Framework is a software framework that runs primarily on Microsoft Windows. It includes a large library and supports several programming languages which allows language interoperability...
from Microsoft
Microsoft
Microsoft Corporation is an American public multinational corporation headquartered in Redmond, Washington, USA that develops, manufactures, licenses, and supports a wide range of products and services predominantly related to computing through its various product divisions...
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 delegatesDelegate (.NET)
A delegate is a form of type-safe function pointer used by the .NET Framework. Delegates specify a method to call and optionally an object to call the method on. They are used, among other things, to implement callbacks and event listeners....
, 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
Generic programming
In a broad definition, generic programming is a style of computer programming in which algorithms are written in terms of to-be-specified-later types that are then instantiated when needed for specific types provided as parameters...
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.
See also
- Task Parallel Library
- JoinsJoins (concurrency library)Joins is an asynchronous concurrent computing API from Microsoft Research for the .NET Framework. It is based on join calculus and makes the concurrency constructs of the Cω language available as a .NET assembly that any CLI compliant language can use....