This recipe will describe how to implement a timeout for thread pool operations, and how to wait properly on a thread pool.
To step into this recipe, you will need Visual Studio 2012. There are no other prerequisites. The source code for this recipe could be found in BookSamples\Chapter3\Recipe5
.
To learn how to implement a timeout and how to wait properly on a thread pool, perform the following steps:
Start Visual Studio 2012. Create a new C# Console Application project.
In the
Program.cs
file, add the followingusing
directives:using System; using System.Threading;
Add the following code snippet below the
Main
method:static void RunOperations(TimeSpanworkerOperationTimeout) { using (var evt = new ManualResetEvent(false)) using (var cts = new CancellationTokenSource()) { Console.WriteLine("Registering timeout operations..."); var worker = ThreadPool.RegisterWaitForSingleObject(evt, (state, isTimedOut)...