[英]Why does SynchronizationContext.Post() get called only once when using multiple awaits?
考慮以下示例:async Task DoWork() { await Task.Run(() => { for (int i = 0; i < 25; i++) { Console.WriteLine("Task ...
[英]Why does SynchronizationContext.Post() get called only once when using multiple awaits?
考慮以下示例:async Task DoWork() { await Task.Run(() => { for (int i = 0; i < 25; i++) { Console.WriteLine("Task ...
[英]c# make UI calls when TCPClient receives data async
我有一個 Forms 應用程序和一個與 TCPClient 連接的控制台服務器應用程序。 Forms 應用程序打開一個用戶身份驗證對話框,當用戶單擊登錄按鈕時,將向服務器發送請求。 然后,服務器會響應登錄憑據是否有效。 Forms 應用程序異步接收響應並給出錯誤消息或關閉身份驗證 window ...
[英]Background Thread messages to UI Thread cache and not pushed to UI till background process complete
我已經閱讀了許多關於 .NET 中多線程的以前的帖子,並嘗試了多種方法,但我正在努力使我的特定案例和 c#.NET 代碼能夠正常運行。 我的代碼旨在在后台運行長時間運行的進程,並將正在進行的進度報告到我的 Windows 窗體 UI 中的日志顯示和同一窗體上的進度條控件中。 截至目前,它可以運行,但 ...
[英]Is a continuation created even if there is nothing after an await?
我正在閱讀這篇文章並找到了這個例子: 這種死鎖的根本原因是 await 處理上下文的方式。 默認情況下,等待未完成的任務時,會捕獲當前“上下文”並用於在任務完成時恢復方法。 這個“上下文”是當前的 SynchronizationContext,除非它是 null,在這種情況下它是當前的 TaskS ...
[英]Fill TreeView with data from a collection asynchronously
我正在嘗試以 50ms 的時間間隔將一批節點異步添加到 TreeView,但我收到一個異常,即集合已被修改。 我怎樣才能防止這種情況? ...
[英]Run task with current SynchronizationContext not resume execution after await methods
我需要使用當前的 SynchronizationContext 運行任務。 我使用任務工廠來做到這一點: 異步操作方法: 問題: 執行后await dal.SaveToDb(data); AsyncOperation 方法沒有被恢復(dal.SaveToDb(data) 之后的代碼根本沒有執行)。 ...
[英]What is the lifetime of SetSynchronizationContext?
我有一個自定義 SynchronizationContext 抽象出自定義工作隊列系統。 我正在嘗試編寫一個幫助程序 function ,這使得客戶端代碼可以輕松為其編寫代碼。 我的助手 function 目前看起來像: 我希望像這樣使用: 我不知道這是否符合猶太教規,但它似乎適用於我拋出的測試用 ...
[英]Task-Like and ConfigureAwait(false), is it possible?
我一直在閱讀有關類似任務和等待類型的文章。 我想我已經很好地掌握了它的基本機制(awaiter、asyncmethodbuilder ......),但是當我嘗試理解 ConfigureAwait(false) 在這種情況下的用法時(如果可能的話)有些不對勁。 我的問題是: ConfigureA ...
[英]Custom TaskFactory does not use custom SynchronizationContext
注意:這是在 Unity3D 下我需要使用自定義同步上下文運行內部任務,如下所示: 外部任務 -> 在默認調度程序上內部任務 -> 在具有自定義同步上下文的自定義調度程序上這是因為內部任務中的某些對象只能在自定義同步上下文將發布到的特定線程上創建,另一方面,我希望外部任務正常運行,即T ...
[英].Net core & SynchronizationContext & Thread.SetData
據我所知,AspNetCore 沒有 SynchronizationContext 。 “重新輸入”請求上下文涉及許多內部任務,例如設置HttpContext.Current和當前線程的標識和區域性。 因此,我創建了一個帶有操作的簡單.Net Core Api項目: 令 ...
[英]One-line async method SynchronizationContext
我准備了WinForms應用程序,以測試單行異步方法是否會導致死鎖。 button1_Click事件等待單行異步代理方法等待的GetZero任務。 但是,它導致死鎖。 為什么? 我已經讀過,單行異步方法不需要在await完成后繼續執行任何操作,因此沒有委托可以將消息發送到導致死鎖的消息泵 ...
[英]Is ConfigureAwait(false) needed/beneficial when awaiting async calls in Azure Functions
通常建議在不需要上下文的情況下等待異步調用時使用ConfigureAwait(false) 。 只是想知道在Azure函數中使用ConfigureAwait(false)有什么好處。 Azure Function線程是否具有非null的SynchronizationContext ,這樣 ...
[英]SynchronizationContext is null in OnStart method of WindowsService
我正在嘗試為Windows服務(已通過InstallUtil.exe安裝)創建后台任務,並使用SynchronizationContext將一些消息發送到主服務線程。 不幸的是, SynchronizationContext.Current在服務啟動時始終為null 。 我已經看到了 ...
[英]Is it possible to test if a method is running with a captured SynchronizationContext when started by a Task?
我可能在某處缺少答案,或者這很瑣碎,但我沒有找到答案。 這實際上是我想要在代碼中完成的工作: 上面是一個過於簡化的示例,但表達了我要完成的工作。 目標是在非常大的代碼庫中消除對ConfigureAwait不當使用。 給定使用Task運行的任何方法,是否可以通過諸如Ass ...
[英]Where is asynchronous continuations are queued in ASP.NET Core?
在舊版ASP.NET上,異步方法的繼續排隊到請求上下文( AspNetSynchronizationContext )中。 但是在ASP.NET Core上,沒有這樣的SynchronizationContext (無上下文)。 因此,ASP.NET Core中異步繼續在哪里排隊? ...
[英]Understanding context in .Net Task execution
我一直試圖理解.Net中任務執行中上下文的概念。 但是,我仍然無法將context與OS線程的基本概念相關聯。 在瀏覽此博客時 ,我對上下文是什么有以下想法: 在GUI應用程序中,有一個包含所有GUI元素的GUI線程。 現在,因為需要進入GUI線程才能訪問GUI元素,所以我假設G ...
[英]Synchronization context for Task.Delay
我可以發現, Task.Run始終在.NET Framework線程池( TaskScheduler.Default )的線程上執行。 我想,它與Task.Delay是一樣的,但我不確定。 MSDN僅針對Task.Delay說: 創建一個在延遲一段時間后完成的任務 因此 ...
[英]Why the default SynchronizationContext is not captured in a Console App?
我正在嘗試了解有關SynchronizationContext更多信息,因此我制作了這個簡單的控制台應用程序: 如果我理解正確, await運算符會捕獲當前的SynchronizationContext然后將其余的異步方法發布給它。 但是,在我的應用程序中,在await之后Synchroniz ...
[英]C# What does the “Synchronization” means in “SynchronizationContext”?
我理解同步上下文是什么,但我只是不明白這個詞中的“同步”意味着什么。 你有什么想法? 謝謝 ...
[英].NET Core 2.1, Manjuro Linux fails without ConfigureAwait(false)
我正在尋找工作理論,因為我一無所知。 據我對.NET Core的了解, ConfigureAwait(false) 無關緊要。 但是,如果我不使用ConfigureAwait(false)那么我的代碼塊會卡在Manjuro Linux上。 它不會卡在Ubuntu或Windows上。 ...