Di beberapa titik waktu CoreCLR mendukung titik masuk utama asinkron. Lihat http://blog.stephencleary.com/2015/03/async-console-apps-on-net-coreclr.html
Namun kedua program berikut tidak bekerja di .NET Core RTM
using System;
using System.Threading.Tasks;
namespace ConsoleApplication
{
public class Program
{
public static async Task Main(string[] args)
{
await Task.Delay(1000);
Console.WriteLine("Hello World!");
}
}
}
atau
using System;
using System.Threading.Tasks;
namespace ConsoleApplication
{
public class Program
{
public async Task Main(string[] args)
{
await Task.Delay(1000);
Console.WriteLine("Hello World!");
}
}
}
Keduanya gagal dengan kesalahan:
kesalahan CS5001: Program tidak berisi metode 'Utama' statis yang cocok untuk titik masuk
Apakah aplikasi konsol async didukung di .NET Core RTM?
async Main
dukungan saat ini direncanakan untuk C # 7.0 .properties -> build -> advanced -> language version
jenis build Debug DAN Rilis, jika tidak, proyek akan gagal di Publikasikan.Jawaban:
Ya, sejak itu
async Main
fungsinya didukung.NET Core 2.0
.Dukungan untuk
async Main
fungsi diperkenalkan di C # versi 7.1. Namun, fungsi ini tidak tersedia di luar kotak. Untuk menggunakan fitur ini Anda perlu secara eksplisit menentukan C # versi 7.1 dalam.csproj
file Anda , baik dengan menyertakanatau oleh
Misalnya untuk proyek inti 2.0 ASP.NET:
di mana fungsi Utama dapat ditulis ulang sebagai berikut:
Referensi:
sumber
Pembaruan : Async utama didukung secara asli oleh C # 7.1! Lihat jawaban Evgeny di atas.
Saya akan menyimpan solusi di bawah ini untuk anak cucu, tetapi itu tidak lagi diperlukan.
async main
jauh lebih sederhana.Seperti yang dikatakan Nick, dukungan untuk ini telah dihapus. Ini adalah solusi pilihan saya:
GetAwaiter().GetResult()
sama dengan.Wait
(memblokir secara sinkron), tetapi lebih disukai karena membuka pengecualian.Ada usulan untuk ditambahkan
async Main()
ke versi C #: csharplang # 97 mendatangsumber
Dukungan untuk titik masuk asinkron telah dihapus beberapa waktu lalu.
Lihat masalah ini di aspnet / pengumuman github.
sumber