The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

釐清非同步程式設計模型下 Task 與 ValueTask 的使用時機

在 .NET 的世界裡,從 .NET Framework 4.0 問世之前,你只能使用 Thread、APM (Asynchronous Programming Model) 或 EAP (Event-based Asynchronous Pattern) 開發非同步程式碼,其實對不熟悉非同步開發的人來說,是有一點小小的進入門檻。但從 .NET Framework 4.0 開始推出的 TAP (Task-based Asynchronous Pattern) 這種以 Task 為基礎的非同步模式,不但可以透過 async/await 大幅簡化非同步開發的思維模式,還能產生更容易閱讀、好維護的程式碼。今天這篇文章,我將介紹 .NET Core 2.0 搭配 C# 7.0 推出的一個 ValueTask<TResult> 結構,並說明他跟 Task<TResult> 類別的不同之處!

... 繼續閱讀 ...

深入理解 C# 7.1 提供的 async 非同步 Main() 方法

我們在開發 .NET 應用程式的時候,預設選取的 C# 語言版本為「最新已發行主要版本」(latest major version),如果以 Visual Studio 2017 v15.9.10 來說,內建的 C# 最新發行版本就是 7.3 版,因此主要版本就是 7.0 版。本篇文章要來介紹 C# 7.1 提供的一個語法糖,它能讓你的 Console 應用程式,將主程式的進入點 Main() 方法也能宣告為非同步(async)的版本,好讓你從頭到尾都用非同步的方式開發應用程式,最後還會說明這個新語法背後的技術原理。

... 繼續閱讀 ...