Recent update: 2008-3-21
I've created a couple of ports whose handlers are iterators. I added them to the concurrent group of an interleave then I posted to one of the ports. The code in the handler never executes. Code Snippet public class myService : DsspServiceBase{ // some code here ... private ...
592 byte By
IgorM at 2008-3-6
There is an inconcistensy with the Choice persitence flags: 1. The Concurrent affairs article claims that: "Choice and Interleave's TeardownReceiverGroup require that their arbiters always be non-persistent" 2. CCR Wiki (on the other hand) gives the following ...
Hi, This is my first post on CCR, I'm business software developer, but I like the service and message pattern of the library. My question is about a Choice with same type ports. It seems that the Choice Arbiter doesn't scan the second port. For example: class Program { static void ...
592 byte By
IgorM at 2008-3-3
There is an inconcistensy with the Choice persitence flags: 1. The Concurrent affairs article claims that: "Choice and Interleave's TeardownReceiverGroup require that their arbiters always be non-persistent" 2. CCR Wiki (on the other hand) gives the following ...
Hi, This is my first post on CCR, I'm business software developer, but I like the service and message pattern of the library. My question is about a Choice with same type ports. It seems that the Choice Arbiter doesn't scan the second port. For example: class Program { static void ...
Does anyone know of a best practices pattern for doing synchronous messages in MSRS?
In a different thread George cleared some things up for me. http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2082590&SiteID=1 Specifically: “Activate() is really a form of "spawn" or "execute in parallel", which is exactly what interleave needs, as a long ...
I have recently added some minor syntactic "sugar" that makes the common asynchronous request/response pattern very concise, especially in the context of iterators. Below is a standard request/response, in a DSS service: Old way : (note the _contractDirectory.Get() is a helper ...
In a different thread George cleared some things up for me. http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2082590&SiteID=1 Specifically: “Activate() is really a form of "spawn" or "execute in parallel", which is exactly what interleave needs, as a long ...
I have a few questions about what I see in Object Browser about Arbiter. Arbiter methods that activate Arbiter.Activate returns void Arbiter.ExecuteToCompletion returns ITask(maybe) [*1] Arbiter methods that return an instance of ITask Arbiter.FromHandler Arbiter.FromIteratorHandler ...
I am upgrading some code to 1.5 and am seeing this weird bug in the cosole output: Console Output No service handlers found on operations port with field name:_positionPortCategory StdOut Level Info Time 2007-09-06T23:53:49.92875-04:00 Subject No service handlers found on operations port ...
In a different thread George cleared some things up for me. http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2082590&SiteID=1 Specifically: “Activate() is really a form of "spawn" or "execute in parallel", which is exactly what interleave needs, as a long ...
I have a few questions about what I see in Object Browser about Arbiter. Arbiter methods that activate Arbiter.Activate returns void Arbiter.ExecuteToCompletion returns ITask(maybe) [*1] Arbiter methods that return an instance of ITask Arbiter.FromHandler Arbiter.FromIteratorHandler ...
I am upgrading some code to 1.5 and am seeing this weird bug in the cosole output: Console Output No service handlers found on operations port with field name:_positionPortCategory StdOut Level Info Time 2007-09-06T23:53:49.92875-04:00 Subject No service handlers found on operations port ...
I am having trouble fully understanding the task execution constraints behavior. Consider the following variation of the ThrottlingExample from the 1.5 documentation. The documentation example exhibits the behavior that one might expect when pushing the limits of the machine (1 million posts ...
Please download and update your MSRS installation. Its a single dll, that will overwrite the ccr.core.dll that came with MSRS 1.5. You can download from here: http://www.microsoft.com/downloads/details.aspx?FamilyId=AEA84A5A-C50A-4316-80EB-4E1375B34DD0&displaylang=en This update requires ...
I have been writing a simulator and experimenting with CCR Ports. I am using the handler in the arbiter to post messages other simulator tiers – the listeners on the other tiers are WCF endpoints. I was pretty happy with the performance/behavior of one port. So, I thought why not make a list ...
I've created a couple of ports whose handlers are iterators. I added them to the concurrent group of an interleave then I posted to one of the ports. The code in the handler never executes. Code Snippet public class myService : DsspServiceBase{ // some code here ... private ...
I've created a couple of ports whose handlers are iterators. I added them to the concurrent group of an interleave then I posted to one of the ports. The code in the handler never executes. Code Snippet public class myService : DsspServiceBase{ // some code here ... private ...
From browsing through other posts in this forum, I see that using the DispatcherQueue with a TaskExecutionPolicy to throttle tasks in an Interleave will not work. I have a need to throttle tasks in an interleave, and will describe what I am doing to see if perhaps there is another approach I ...
Every once in a while I run into this problem and though it seems simple I can't quite figure out the pattern to solve it.In my service Start() method I want to spawn a task iterator and wait for it to complete. My current braindead approach is something along the lines of:void Start() {bool ...
I am having trouble fully understanding the task execution constraints behavior. Consider the following variation of the ThrottlingExample from the 1.5 documentation. The documentation example exhibits the behavior that one might expect when pushing the limits of the machine (1 million posts ...
Every once in a while I run into this problem and though it seems simple I can't quite figure out the pattern to solve it.In my service Start() method I want to spawn a task iterator and wait for it to complete. My current braindead approach is something along the lines of:void Start() {bool ...
I am having trouble fully understanding the task execution constraints behavior. Consider the following variation of the ThrottlingExample from the 1.5 documentation. The documentation example exhibits the behavior that one might expect when pushing the limits of the machine (1 million posts ...
I am having trouble fully understanding the task execution constraints behavior. Consider the following variation of the ThrottlingExample from the 1.5 documentation. The documentation example exhibits the behavior that one might expect when pushing the limits of the machine (1 million posts ...
Hello, Could you please clarify something regarding the dispatching of tasks in an ExclusiveReceiverGroup. Lets say I have a -- Port<FileInfo> FileInfoPort -- and I register a persistent receiver -- FileHandler -- on a port of this type (along with other handlers) in the exclusive ...
Hi all,I'm trying to re-implement the thread scheduling system in a windows service. The primary goal of the change is to allow prioritization of tasks. The system currently uses only the features of BeginInvoke() and its reliance on the CLR's thread pool. Here is a description of the ...
Hi all,I'm trying to re-implement the thread scheduling system in a windows service. The primary goal of the change is to allow prioritization of tasks. The system currently uses only the features of BeginInvoke() and its reliance on the CLR's thread pool. Here is a description of the ...
Hi! Is it possible to use nested Interleaves? Consider a scenerio where we have a set of mutually independent receiver-sets that can run concurrently, but individual receivers in each set require to run exclusively within the set. For example, receivers A, B, C use part S1 of state and hence ...
Hi, I'm new to CCR and DSS so I need a little advice on how to best carry out this task: So, I'm trying to listen to 2 ports, the timerPort (like in ServiceTutorials) and another port called laserResultPort which carries RaycastResults. I have my LRF registered to the laserResultPort and ...
321 byte By
Don at 2008-2-10
This is a fundamental question I've always wondered about, and maybe other people have as well. Is there any performance advantage in using one or the other? Should we always use ReceiveWithIterator, or should we use Receive when none of the Iterator functionality is required? Thanks, Don ...
Hi all,I hope you'll bear with me on this question- I come from the world of pthreads where I had a pretty clear understanding of thread safety, race conditions, etc. The CCR, not to mention GDI is all a bit new to me. :-)I have a service that's subscribed to the webcam service and polling it ...
321 byte By
Don at 2008-2-8
This is a fundamental question I've always wondered about, and maybe other people have as well. Is there any performance advantage in using one or the other? Should we always use ReceiveWithIterator, or should we use Receive when none of the Iterator functionality is required? Thanks, Don ...
This sub forum is dedicated to CCR discussion. Some useful links: CCR User Guide (please read this first): http://msdn2.microsoft.com/en-us/library/bb483117.aspx MSDN Concurrent Affairs article, plus sample code: http://msdn.microsoft.com/msdnmag/issues/06/09/concurrentaffairs/default.aspx ...
I have recently added some minor syntactic "sugar" that makes the common asynchronous request/response pattern very concise, especially in the context of iterators. Below is a standard request/response, in a DSS service: Old way : (note the _contractDirectory.Get() is a helper ...
5770 byte By
CSHIII at 2008-2-7
I just started looking at the CCR in detail and decided to try it with the Orcas CTP and C# 3.0. This probably isn't "the best" way to do this, but I thought it was interesting to use extension methods and lambda expressions with the CCR. Here's what I came up with. I'm sure the ...
I am learning robotics studio,I want to know its frame or structure,know that I can study faster THANK YOU
348 byte By
yuanhp at 2008-2-7
Hi, I have a question about thread-to-port assignment. There are m threads (they are launched by the same dispatch and share the same queue).I have two options to create port:(1) All threads share the same port. (2) Create one port for each of these m threads. I means we will have m ports.So, ...
5628 byte By
yuanhp at 2008-2-6
I meet a strange problem in executing code below. The code is simple. First I create dispatch and queue. It also create 2 threads. Then I call the function Test() in a loop. In the Test(), I just post two message to the queue and then let the 2 threads to get message from the queue. From my ...
A number of MVP's have discussed this. Jeffrey Richter wrote an article about it last November. Why make people download a 53MB install in order just to get the CCR.Core and related assemblies? Thanks!
How exactly are iterator tasks implemented? Is it safe to say that the task executer iterates over it and wait to the completion of each task before calling MoveNext() ?e.g. IEnumerator<ITasl> iterativeTask = ... foreach (ITask task in iterativeTask){ task.Execute() ...} If so, how can ...
If I understand it correctly, line 239 in BlobTrackerCalibrate.cs does nothing: Arbiter.Choice( setImage.ResultPort, delegate(EmptyValue success) { }, delegate(Exception e) { fault = Fault.FromException(e); } ); I think there is a yield return missing in front of the Arbiter.Choice. It's a ...
First of all, one nice little feature everyone asked for. Yielding to entire iterators!!! Code Snippet IEnumerator MyIteratorOverIterators() { yield return Arbiter.ExecuteToCompletion( dispatcherQueue, SomeIteratorHandler); Console.WriteLine("Done with first multi stage ...
They mentioned it publicly so i thought i share the news. Mentioned in this blog: http://blogs.msdn.com/robburke/archive/2007/05/01/mix-misc-monday.aspx I had the chance to talk to MySpace architects about the CCR a while back (after i found out they where using it), and its exciting to see ...
Part of our MSRS 1.5 release, a new CCR (and DSS) user guide is now available. Its also available online in the msdn library, under Microsoft Robotics Studio: http://msdn2.microsoft.com/en-us/library/bb483107.aspx ...
I think my understanding of throtting constraints is broken. I assumed the following code would only print "3" and "c", but it prints all values posted to both ports. Code Snippet using (Dispatcher dispatcher = new Dispatcher()) { DispatcherQueue dq = new ...
Hi. What kinds of things I can do with iterators in the CCR? What's the practical usage of methods such as: Arbiter.FromIteratorHandler, or Arbiter.ReceiveWithIterator? Thanks.
Is it possible to join on more than two ports without implementing classes such as Task<T0, T1, T2, T3> or Task<T0, T1, T2, T3, T4> and so on? I know that there's a Task<T0, T1, T2> class but what if I want to join on four ports?
Hi. What kinds of things I can do with iterators in the CCR? What's the practical usage of methods such as: Arbiter.FromIteratorHandler, or Arbiter.ReceiveWithIterator? Thanks.
Is it possible to join on more than two ports without implementing classes such as Task<T0, T1, T2, T3> or Task<T0, T1, T2, T3, T4> and so on? I know that there's a Task<T0, T1, T2> class but what if I want to join on four ports?