static void Main(string[] args)
{
Console.WriteLine("first time 5s");
RunOperations(TimeSpan.FromSeconds(5));
Console.WriteLine("second time 7s");
RunOperations(TimeSpan.FromSeconds(7));
Console.ReadKey();
}
static void RunOperations(TimeSpan workerOperationTimeout)
{
using (var evt = new ManualResetEvent(false))
{
using (var cts = new CancellationTokenSource())
{
Console.WriteLine("registering timeout operations...");
//当evt产生终止信号或超时 WorkerOperationWait()被执行
var worker = ThreadPool.RegisterWaitForSingleObject(
evt,
//System.Threading.WaitOrTimerCallback(object state, bool timedOut)
//evt每次超时或终止时回调此方法
(state
c# 线程池RegisterWaitForSingleObject的一个Demo
最新推荐文章于 2022-11-07 17:21:49 发布