C# 程式設計: 不卡死、多執行緒暫停、等待wait 參考資料


1.我的實作,這種簡單卻不完美。其實簡單還不如第2種:

CountdownEvent.Wait 方法 (System.Threading) | Microsoft Docs

[C#.net]使用Thread.Sleep界面卡死的问题解决方法 - osc_f1tgjw6d的个人空间 - OSCHINA - 中文开源技术交流社区

BackgroundWorker 類別 (System.ComponentModel) | Microsoft Docs

C#多執行緒解決介面卡死問題的完美解決方案 - IT閱讀 (itread01.com)

求C# 不卡死,不耗CPU 的延时命令。-CSDN论坛

c# 不卡死 - Google 搜尋


所有單一執行緒的 Apartment (STA) 執行緒都應該使用提取等候基本方法 (例如 CoWaitForMultipleHandles),並且在長時間的執行作業中定期提取訊息 - Google 搜尋

How to use "CoWaitForMultipleHandles" ? (microsoft.com)

Why are you executing the loadingData() method on a STA thread? If you want to execute some method on a background thread, the recommended way of doing this from .NET 4 is to start a new Task:

Task.Factory.StartNew(() =>
                          {
                           loadingData();
                          }).ContinueWith((t) =>
                                           {
                                            displayAlert("Done !");
                                           }, System.Threading.CancellationToken.None, TaskContinuationOptions.None, TaskScheduler.FromCurrentSynchronizationContext());

2.用以上這個就很好用了,詳參我的實作

TaskFactory.StartNew 方法 (System.Threading.Tasks) | Microsoft Docs

TaskFactory.StartNew Method (System.Threading.Tasks) | Microsoft Docs

Task.Run 和 Task.Factory.StartNew 区别_飞翔的学习笔记-CSDN博客_task.factory.startnew


C#從零開始_自學C#、Visual Studio實境秀 25/ {轉型、async await (多工,多執行緒) (oscarsun72.blogspot.com)

Asynchronous programming in C# | Microsoft Docs(Asynchronous programming with async and await)

async - C# Reference | Microsoft Docs

await operator - C# reference | Microsoft Docs







留言

熱門文章