程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 隨手記一次如何注銷線程池,隨手記注銷線程池

隨手記一次如何注銷線程池,隨手記注銷線程池

編輯:C#入門知識

隨手記一次如何注銷線程池,隨手記注銷線程池


題記:之前一直用timer,突然用了次ThreadPool來注冊線程,發現在注銷的時候不會了(%>_<%),於是簡單記錄幾句:

private AutoResetEvent autoReset = new AutoResetEvent(false);
private RegisteredWaitHandle h;

使用:

 h = ThreadPool.RegisterWaitForSingleObject(autoReset, ParallelClearLog, null, 100, false);

在想要終止的時候設置(相當於設置一個消息):

autoReset.Set();

 

最後,真正取消線程的如下操作:

if (h != null) {
h.Unregister(null);

}

當然,既然可以取消,已可以在此重置(可用於文件斷點續傳這種情況,超時重連.....)

h.Unregister(autoReset);

 

(end)

參考資料:https://msdn.microsoft.com/zh-cn/magazine/system.threading.registeredwaithandle.unregister(v=vs.110).aspx

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