備忘録

備忘録

C# 7.1 非同期Mainを使う

Ⅰ. はじめに

C# 7.1の新機能の1つに「非同期Main」があります。
C# 7までは Main関数で async/await は利用不可でした。

C# 7 まで
static void Main(string[] args) => MainAsync().Wait();

static async Task MainAsync()
{
  await Task.Delay(1);
  Console.WriteLine("Hello MainAsync");
}
C# 7.1 の「非同期Main」
static async Task Main(string[] args)
{
  await Task.Delay(1);
  Console.WriteLine("Hello MainAsync");
}

Ⅱ. 非同期Mainを使う方法

C#7.1 を有効にする必要があります。
.csproj を開き <LangVersion> を追加するだけです。

<Project>
  <PropertyGroup>
    ...
    <LangVersion>7.1</LangVersion>
    ...
  </PropertyGroup>
</Project>

※2017/12/14追記
VisualStudioの画面で、プロジェクトのプロパティ→ビルド→詳細設定→言語バージョン→C# 7.1を選択
でも設定できます。

Ⅲ. 実行結果

f:id:kagasu:20170820211938p:plain