Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Menggunakan Kaedah Async dengan Betul dari Kaedah Utama dalam C#?

Bagaimanakah Saya Menggunakan Kaedah Async dengan Betul dari Kaedah Utama dalam C#?

DDD
DDDasal
2024-12-29 15:41:13294semak imbas

How Do I Properly Invoke Async Methods from the Main Method in C#?

Memanfaatkan Kaedah Async dalam Utama: Panduan Komprehensif

Dalam bidang pengaturcaraan tak segerak, tidak jarang kita menghadapi situasi di mana kita perlu panggil kaedah async terus daripada kaedah Utama. Memahami cara ini boleh dicapai adalah penting untuk memanfaatkan faedah pengaturcaraan tak segerak.

Invokasi Kaedah Asynchronous dalam Utama

Pertimbangkan coretan kod berikut:


kelas awam ujian
{

public async Task Go()
{
    await PrintAnswerToLife();
    Console.WriteLine("done");
}

public async Task PrintAnswerToLife()
{
    int answer = await GetAnswerToLife();
    Console.WriteLine(answer);
}

public async Task<int> GetAnswerToLife()
{
    await Task.Delay(5000);
    int answer = 21 * 2;
    return answer;
}

}

Pelbagai Pendekatan

Terdapat beberapa pendekatan untuk menggunakan async kaedah daripada kaedah Utama:

1. Kaedah Utama Async (C# 7.1 dan Lebih Baru)

Untuk versi C# 7.1 dan lebih baharu, kaedah Utama boleh ditandakan sebagai tak segerak. Ini membolehkan penggunaan langsung kaedah async dalam kaedah Utama, seperti yang dilihat dalam contoh berikut:

<br>statik async Task Main(rentetan[] args)<br>{</p> <pre class="brush:php;toolbar:false">test t = new test();
await t.Go();
Console.WriteLine("finished");
Console.ReadKey();

}

2. Panggil Kaedah "Tunggu"

Untuk versi C# yang lebih awal, kaedah Tunggu boleh digunakan untuk menyekat urutan sehingga kaedah async selesai. Pendekatan ini ditunjukkan di bawah:

<br>statik lompang Utama(rentetan[] args)<br>{</p>
<pre class="brush:php;toolbar:false">test t = new test();
t.Go().Wait();
Console.WriteLine("finished");
Console.ReadKey();

}

3. OnCompleted Callback (Pendekatan Lama)

Dalam kes tertentu, anda mungkin perlu menggunakan panggilan balik OnCompleted seperti yang dilihat dalam coretan kod awal. Pendekatan ini, walau bagaimanapun, boleh membawa kepada kebuntuan dan harus dielakkan jika boleh.

Pendekatan Optimum

Untuk C# 7.1 dan lebih baharu, menggunakan kaedah utama async adalah pilihan utama pendekatan kerana ia memudahkan kod dan menghapuskan keperluan untuk panggilan balik berasaskan panggilan. Untuk versi C# yang lebih awal, kaedah Tunggu boleh digunakan, tetapi penting untuk mengambil perhatian potensi implikasi prestasi yang dikaitkan dengan menyekat urutan.

Kesimpulan

Menggunakan kaedah async daripada kaedah Utama boleh dicapai melalui pelbagai teknik. Dengan memahami pendekatan yang berbeza dan implikasinya, anda boleh memilih penyelesaian optimum berdasarkan keperluan khusus anda dan versi C# yang anda gunakan.

Atas ialah kandungan terperinci Bagaimanakah Saya Menggunakan Kaedah Async dengan Betul 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