Using a wait handle and timeout with a thread pool
This recipe will describe how to implement a timeout for thread pool operations and how to wait properly on a thread pool.
Getting ready
To step into this recipe, you will need Visual Studio 2015. There are no other prerequisites. The source code for this recipe can be found at BookSamples\Chapter3\Recipe5
.
How to do it...
To learn how to implement a timeout and how to wait properly on a thread pool, perform the following steps:
Start Visual Studio 2015. Create a new C# console application project.
In the
Program.cs
file, add the followingusing
directives:using System; using System.Threading; using static System.Console; using static System.Threading.Thread;
Add the following code snippet below the
Main
method:static void RunOperations(TimeSpan workerOperationTimeout) { using (var evt = new ManualResetEvent(false)) using (var cts = new CancellationTokenSource()) { WriteLine("Registering timeout operation..."); var worker = ThreadPool...