首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

淺談 .NET 多線程與並行計算(七):基於多線程的基本組件

     編輯:關於ASP.NET

System.Threading.Timer 組件

常見需求:定時執行計劃任務、長任務進度顯示(需新線程避免阻塞 UI)。.NET 提供 System.Threading.Timer 實現定時任務。

程式碼範例:動態調整 Timer 間隔

ThreadPool.SetMinThreads(2, 2);
ThreadPool.SetMaxThreads(4, 4);

Timer timer = new Timer((state) =>
{
    int a, b;
    ThreadPool.GetAvailableThreads(out a, out b);
    Console.WriteLine(string.Format("({0}/{1}) #{2} : {3}", a, b, Thread.CurrentThread.ManagedThreadId, DateTime.Now.ToString("mm:ss"));
}, null, 2000, 1000);

Console.WriteLine(DateTime.Now.ToString("mm:ss"));
Thread.Sleep(5000);
Console.WriteLine("Change()");
timer.Change(3000, 500); // 延遲 3 秒後啟動,之後每 0.5 秒觸發
Thread.Sleep(5000);
Console.WriteLine("Dispose()");
timer.Dispose();
Thread.Sleep(5000);
Console.WriteLine(DateTime.Now.ToString("mm:ss"));

輸出顯示線程池可用線程數變化與 Timer 觸發時間點

輸出可見:Timer 回調在 ThreadPool 線程執行,Change() 可動態修改首次延遲與週期,Dispose() 停止 Timer。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved