A thousand thanks for this! I'm soon to be needing this on my current project.
Roy,
I wish I had this a year ago. I then wrote something a lot more primitive than this for checking timeouts and race conditions.
Well done.
Gil
Hermann: I'd love to see it.
I thought about going that route, but it seemed too.. non intuitive, but I'd love to get my hands on that.
Roy
Hermann: I'm always reachable at :
Roy at osherove.com
I notice the reference to Mono.Cecil in your Tests folder. Is this necessary? When I removed the reference (and the UsingCecil tests), everything still seemed to compile okay.
Tom: The Cecil is just something I've been playing with. There is no dependency on Cecil at the moment (and I don't see anhy for the near future)
I've done this a couple of times, but much less general. I've been going to put something reusable together but you've beat me to it and done it well. Thanks Roy!
Great little abstraction. Perfect for my needs.
Just a note FYI:
Some of the source classes have a "using NUnit.Framework" statement which isn't being used and as such if not installed on the clients machine throws an exception at runtime.
Also, the "public void StartAllThreads(int runningTimeout)" method has a dependency on NUnit which it doesn't need to... Just throw an exception instead of doing an NUnit.AssertFail().