dotnetCore 執行緒中斷問題
阿新 • • 發佈:2018-11-26
dotnetCore 執行緒終止問題,我們用中斷解決
不想看廢話的直接用這個方法:Interrupt();
連結:https://docs.microsoft.com/zh-cn/dotnet/api/system.threading.thread.interrupt?view=netcore-2.1#System_Threading_Thread_Interrupt
在今天我使用dotnetcore多執行緒的時候,發現一個問題。
Thread居然沒有Abort() 方法。
看下圖: 僅限.NET Core 不支援此成員。。。。。。,六個句號獻給真香。
那麼很多小夥伴還要用終止怎麼辦呢?
既然不不能終止,我們就中斷吧:
dangdangdangdangdangdang
:
Interrupt();
使用截圖如下:(執行6秒就中斷的截圖)
後面的就交給後臺自己釋放了。
記得加上
thread.IsBackground=true;
現在交出完整核心程式碼:
using System; using System.Threading; namespace dotnetcoreThreadInterrupt { class Application { public void Start() { Thread thread = new Thread(TtoRun); thread.IsBackground=true; thread.Start(); for (int i = 0; i < 6; i++) { Thread.Sleep(1000); } thread.Interrupt(); } public void TtoRun() { while (true) { Thread.Sleep(1000); System.Console.WriteLine("W"); } } } }
Gitbub連結: https://github.com/daolizhe/dotnetcoreThreadDemo
執行結果:記住是目錄dotnetcoreThreadInterrupt直接dotnet run就能用,如果版本不對,改個版本