ホームページ >バックエンド開発 >C++ >C# コンソール アプリケーションの Main 関数で非同期メソッドを使用するにはどうすればよいですか?

C# コンソール アプリケーションの Main 関数で非同期メソッドを使用するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-05 13:05:40448ブラウズ

How Can I Use Async Methods in a C# Console Application's Main Function?

C# のコンソール アプリケーションでの async の使用

C# で、async を使用コンソール アプリケーションでは、Main 関数を次のようにマークできないため、慎重に検討する必要があります。 非同期。これは、コンソール アプリケーションのエントリ ポイントに async 修飾子を含めることができないためです。

この問題を解決するには、次の 2 つの主要なオプションが利用可能です:

  1. 非同期タスクを待ちます:

    • この中でこのアプローチでは、Main 関数の async 関数から返された Task に対して Wait() メソッドを使用できます。これにより、async タスクが完了するまでメインスレッドがブロックされます。例:
    static void Main()
    {
       MainAsync().Wait();
    }
    
    static async Task MainAsync()
    {
       ...
    }
  2. カスタム非同期コンテキストを使用する:

    • または、カスタムの AsyncContext クラスは非同期実行を処理します。このクラスは、async アクションを引数として受け取り、その完了を待機する Run メソッドを提供できます。例:
    static void Main()
    {
       AsyncContext.Run(() => MainAsync());
    }
    
    static async Task MainAsync()
    {
       ...
    }
これらのオプションのいずれかを利用すると、プラットフォームの要件との互換性を維持しながら、コンソール アプリケーションで

async コードを実行できます。 .

以上がC# コンソール アプリケーションの Main 関数で非同期メソッドを使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。