.NET多線程編碼結合異步編碼示例
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
1、創建一個.NET8.0控制臺項目來演示多線程的應用 2、快速創建一個線程 3、多次運行程序,可以得到輸出結果 這就是多線程的特點 - 當多個線程并行執行時,它們的具體執行順序是不確定的,除非我們使用同步機制(如 lock、信號量等)來控制執行順序。 4、新建一個類TestThread,以及一個靜態的測試方法,用來做測試使用 5、在Program中,把輸出改成調用TestThread類中的測試方法再次執行測試一下 6、執行以后的輸出結果,如下圖所示 7、Thread.Sleep(毫秒):線程的等待(睡眠) 執行結果: 8、Thread.Join() 代表線程執行完畢以后,才可以繼續執行后續的代碼 如下圖所示,在thread線程內部執行完成以后,很快就接著執行最后的打印輸出方法了 9、Thread.Join(毫秒) 代表等待當前線程執行多長時間,如果超出設定的毫秒數,就會直接執行后續的代碼 運行程序,查看執行結果 1、新增Test2方法,用來測試線程池ThreadPool使用 2、WaitCallback也是一個委托,傳入需要在線程池內執行的方法名稱。以下代碼內,“線程池”字符串為要執行方法對應的參數
3、除了直接傳入回調方法,也可以直接在線程池開啟的方法內,直接寫代碼塊來當做多線程執行的部分 4、線程池內,可以通過設置Manual信號量,來識別線程池內的線程什么時候執行完成。 **1、創建一個TestAsyncAction類,添加一個模擬的異步方法TestAction 2、使用Task快讀創建一個線程。最簡單的方法:Task.Run(()=>{ 代碼塊 }) 3、兩個線程并行執行,查詢執行結果 4、如果想等待新開線程執行完再繼續執行后續的代碼,可以使用如下方式:使用 await 等待整個操作完成
執行結果: 5、也可以使用Task.Factory創建一個任務工廠來實現 6、查看執行結果 1、【異步結合多線程】如果有多個任務在執行期間,在任意一個線程執行完畢以后進行執行某種操作,可以使用 ContinueWhenAny來進行
查看執行結果: 2、【異步結合多線程】如果要等任務全部執行完畢以后才執行某個代碼塊,可以使用ContinueWhenAll 查看執行結果:
3、異步方法中 使用 WhenAll 和 WhenAny(這個僅模擬純IO操作,不涉及多線程)
查看執行結果:
查看執行結果: ?轉自https://www.cnblogs.com/sq1201/p/18664227 該文章在 2025/1/16 11:08:48 編輯過 |
關鍵字查詢
相關文章
正在查詢... |