c# 多線程直接退出不運行 所有線程執行后執行主線程


main下定義了兩個線程,運行時,兩個線程都不執行,直接退出

Thread t1 = new Thread(new ParameterizedThreadStart(Properties));//t1線程調用帶參數的Properties方法
Thread t2 = new Thread(new ParameterizedThreadStart(Consumer));//t2線程調用帶參數的Consumer方法
t1.IsBackground = true;
t2.IsBackground = true;
t1.Start(prop); //prop為Properties方法的實參
t2.Start(con); //con為Consumer方法的實參

第一種方案是:

將 IsBackground 注釋掉,這個參數是后台執行的意思,這樣主線程就不知道子線程的情況了,所有直接下一步了

還有一種方案是:

t1.Join();//阻塞主線程
t2.Join();//阻塞主線程

在下面加上這兩句,用於阻塞主線程,場景是可以在下面執行第三個線程,這樣就是等前面所有線程執行后,再執行接下來的線程,不然所有線程都並發了,沒有交互。

完!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM