Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah saya Boleh Memanggil Kaedah Asynchronous dari Kaedah Utama() dalam C#?

Bagaimanakah saya Boleh Memanggil Kaedah Asynchronous dari Kaedah Utama() dalam C#?

Barbara Streisand
Barbara Streisandasal
2024-12-29 21:22:11658semak imbas

How Can I Call Asynchronous Methods from the Main() Method in C#?

Memanggil Kaedah Async daripada Main()

Salah satu ciri baharu yang diperkenalkan dalam C# ialah sokongan untuk pengaturcaraan tak segerak. Ini membolehkan anda melakukan operasi yang berjalan lama tanpa menyekat urutan utama, yang boleh membawa kepada antara muka pengguna yang lebih responsif.

Dalam sampel kod yang disediakan, anda mempunyai kaedah async dipanggil Go() yang anda mahu panggilan daripada kaedah Utama(). Untuk melakukan ini, anda boleh menggunakan salah satu daripada dua pendekatan:

Pilihan 1: Menggunakan async/wait (C# 7.1 dan lebih baharu)

Dalam C# 7.1 dan lebih baharu, anda boleh menggunakan kata kunci async untuk menjadikan kaedah Main() anda sebagai asynchronous. Ini membolehkan anda menunggu keputusan kaedah Go() tanpa menyekat utas utama.

static async Task Main(string[] args)
{
    test t = new test();
    await t.Go();
    Console.WriteLine("finished");
    Console.ReadKey();
}

Pilihan 2: Menggunakan Penyekatan (untuk versi C# sebelum 7.1)

Untuk versi C# sebelum 7.1, anda boleh menggunakan kaedah Wait() untuk menyekat utas utama sehingga kaedah Go() mempunyai selesai.

static void Main(string[] args)
{
    test t = new test();
    t.Go().Wait();
    Console.WriteLine("finished");
    Console.ReadKey();
}

Pendekatan yang anda gunakan dalam sampel kod anda, yang melibatkan panggilan balik, tidak diperlukan. Menggunakan sama ada corak async/wait atau kaedah Wait() akan membolehkan anda memanggil kaedah async dari Main() dengan cara yang mudah.

Atas ialah kandungan terperinci Bagaimanakah saya Boleh Memanggil Kaedah Asynchronous dari Kaedah Utama() dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn