modifier async
を理解する
非同期プログラミングでは、
メソッドをasync
として定義することはできません。これは、プログラムを非同期にしたい開発者に課題をもたらします。 Main
async
この記事では、この問題について詳しく説明し、コンソールアプリケーションで非同期行動を達成する代替方法について説明します。
寮
Visual Studio 2012では、async
として禁止されています。ただし、Visual Studio 2017 Update 3(15.3)以降では、
メソッドをサポートするようになりました。これにより、開発者は次のコードを作成できます
Main
async
この方法は、Task
の使用と同様に、メインスレッドをブロックしているようです。ただし、C#7.1の公用語の仕様の前に、この動作は依然として仮説です。 Task<T>
async
非同期コンソールアプリケーションの代替方法Mainメソッドが実行不可能な場合、開発者は次の代替方法のいずれかを採用できます。
<code class="language-csharp">class Program { static async Task Main(string[] args) { Bootstrapper bs = new Bootstrapper(); var list = await bs.GetList(); } }</code>カスタマイズされたコンテキスト:
コンソールアプリケーションに互換性のあるカスタマイズされた「メインループ」を作成します。このサイクルは、非同期方法の容器として機能します。 GetAwaiter().GetResult()
非同期作業が完了する前にメインコンソールスレッドを妨害します。これは、次の方法で実装できます
またはの代わりに、開発者はこれらのメソッドを使用するときに発生するasync
パッケージを回避できます。 Main
要するに、
以上がC#コンソールアプリケーションに非同期プログラミングを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。