近来在学习Eugene Agafonov编写的《C#多线程编程实战》(译),做些笔记也顺便分享一下^-^
using System;
using System.Threading;
namespace 在线程池中使用等待事件处理器及超时
{
class Program
{
static void Main(string[] args)
{
RunOperation(TimeSpan.FromSeconds(5));
RunOperation(TimeSpan.FromSeconds(7));
Console.ReadKey();
}
static void RunOperation(TimeSpan workerOperationTimeout)
{
using (var evt = new ManualResetEvent(false))
using (var cts=new CancellationTokenSource())
{
Console.WriteLine("Registering timeout operations...");
var worker = ThreadPool.RegisterWaitForSingleObject(evt, (state, isTimeOut) => WorkerOperationWait(cts, isTimeOut), null, workerOperationTimeout, true);
Console.WriteLine("Starting lo