程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> 淺談.NET下的多線程和並行計算(七)基於多線程的基本組件

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

編輯:關於ASP.NET

在多線程應用中我們有一些很常見的需求,比如定時去做計劃任務,或者是在執行一個長時間的任務 ,在執行這個任務的過程中能有進度顯示(能想到要實現這個需求需要新開一個線程,避免阻塞UI的更新 )。對於這些應用.NET提供了現成的組件。

首先來看一下System.Threading的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);
Thread.Sleep(5000);
Console.WriteLine("Dispose()");
timer.Dispose();
Thread.Sleep(5000);
Console.WriteLine(DateTime.Now.ToString("mm:ss"));

這段代碼的運行結果如下:

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved