在C# 的控制台應用程式中使用「非同步」[重複]
在C# 中使用「非同步」方法時,以下規則拇指是確保非同步操作在整個應用程式中一致的處理。這意味著,如果使用「非同步」方法,一直到入口點,這些方法也應該標記為非同步。
但是,在控制台應用程式中,Main 方法充當入口點並且由於編譯錯誤而無法設為「非同步」。這就提出了一個問題:如何在控制台應用程式中有效地處理非同步操作?
一種方法是在Main 方法中使用同步方法並等待非同步操作的結果:
static void Main() { MainAsync().Wait(); } static async Task MainAsync() { ... }
此方法在繼續之前等待非同步操作完成,確保應用程式不會提前終止。
或者,您可以使用您的自己的非同步上下文來管理控制台應用程式中非同步操作的執行:
static void Main() { AsyncContext.Run(() => MainAsync()); } static async Task MainAsync() { ... }
這種方法允許您在Main 方法中使用「非同步”方法,而不會產生編譯錯誤。 AsyncContext 類別包裝了非同步操作的執行,並提供了在控制台應用程式中處理非同步操作的一致方法。
這兩種方法都是在控制台應用程式中處理非同步操作的可行選項,取決於特定要求和偏好開發人員。遵守這些原則,您可以確保控制台應用程式結構正確並有效處理非同步操作。
以上是如何在 C# 控制台應用程式中有效使用非同步方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!