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
Lepaskan: 2024-12-29 15:41:13
asal
306 orang telah melayarinya

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;
}
Salin selepas log masuk

}

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> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">test t = new test();
await t.Go();
Console.WriteLine("finished");
Console.ReadKey();
Salin selepas log masuk

}

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>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">test t = new test();
t.Go().Wait();
Console.WriteLine("finished");
Console.ReadKey();
Salin selepas log masuk

}

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!

sumber:php.cn
Artikel sebelumnya:Bagaimana untuk Melaksanakan Berbilang Perintah DOS dan MySQL dalam Proses .NET Tunggal? Artikel seterusnya:Bagaimanakah Perkhidmatan Windows Boleh Menyamar sebagai Pengguna Tanpa Kata Laluan Mereka?
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Isu terkini
Topik-topik yang berkaitan
Lagi>
Cadangan popular
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan