ThreadPool線程池的主要方法: 1. public static Boolean QueueUserWorkItem(WaitCallback wc, Object state); WaitCallback回調函數:通過將一些回調函數放入線程池中讓其形成隊列,然後線程池會自動創建或者復用線程 ...
ThreadPool線程池的主要方法:
1. public static Boolean QueueUserWorkItem(WaitCallback wc, Object state);
WaitCallback回調函數:通過將一些回調函數放入線程池中讓其形成隊列,然後線程池會自動創建或者復用線程去執行處理這些回調函數。State: 這個參數也是非常重要的,當執行帶有參數的回調函數時,該參數會將引用傳入,回調方法中,供其使用。
eg:用於文件處理://刪除ftp目錄文件
DataTable dt = new ArchivesHelper().GetFileListByArchivesId(ID); //ftp文件 foreach (DataRow dr in dt.Rows) { StateInfo sta = new StateInfo(); sta.FtpPath = dr["filePath"].ToString(); sta.FtpThumbnailPath = dr["Thumbnail"].ToString(); //hreadProc方法加入線程池中執行,sta對象傳入回調函數,供ThreadProc方法使用 ThreadPool.QueueUserWorkItem(new WaitCallback(ThreadProc), sta); } /// <summary> /// 創建一個委托來引用在輔助線程中執行的代碼(接受一個對象參數並且沒有返回值) /// </summary> /// <param name="stateInfo"></param> private void ThreadProc(Object stateInfo) { var sta = stateInfo as StateInfo; FtpHelper.DeleteFile(sta.FtpPath); //刪除ftp文件 FtpHelper.DeleteFile(sta.FtpThumbnailPath);//刪除ftp縮略圖 }