Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
In the very first CCR tips and tricks I gave you a utility to essentially make CCR code synchronous to make unit testing simpler. Well, with the release of RDS4 beta there is a nice addition in the IO.Adapters assembly. The synchronous arbiter essentially does the job of the PortUtility you've previously seen. All you need is this namespace:
1: using Microsoft.Ccr.Adapters.IO;
And then this code using the PortUtility (assuming PortUtility is created in test constructor):
1: portUtility.Choice(
2: resultPort,
3: s => streamContent = s,
4: e => Assert.Fail("Unexpected failure: " + e.ToString()));
Will look like this:
1: using (var syncArbiter = new SynchronousArbiter())
2: {
3: Assert.IsTrue(syncArbiter.Choice(
4: resultPort,
5: s => streamContent = s,
6: e => Assert.Fail("Unexpected failure: " + e.ToString()),
7: TimeSpan.FromSeconds(5)));
8: }
What I've seen is that in unit tests and also in a few other occasions where you use CCR outside of the Robotics space, a synchronous arbiter makes sense. And now it's part of CCR for you to use. Enjoy!