Rumah >pembangunan bahagian belakang >C++ >C# | Pengaturcaraan tak segerak dengan [async | menunggu | Tugasan]

C# | Pengaturcaraan tak segerak dengan [async | menunggu | Tugasan]

WBOY
WBOYasal
2024-07-23 21:49:44881semak imbas

C# | Asynchronous programming with [async | await | Task]

Note
You can check other posts on my personal website: https://hbolajraf.net

Menggunakan tugas await dan async dalam C

Dalam C#, pengaturcaraan tak segerak digunakan untuk meningkatkan responsif aplikasi dengan membenarkan tugasan dijalankan serentak tanpa menyekat utas utama. Kata kunci tunggu dan tak segerak memainkan peranan penting dalam mencapai matlamat ini. Panduan ini akan menunjukkan kepada anda cara menggunakan Tugas await dan async dengan berkesan.

pengenalan

Pengaturcaraan tak segerak dalam C# adalah penting untuk tugasan yang mungkin mengambil masa yang banyak, seperti operasi terikat I/O atau permintaan rangkaian. Dengan menggunakan await dan async, anda boleh memastikan aplikasi anda kekal responsif sementara menunggu tugasan ini selesai.

Menggunakan Tugas async

  1. Tentukan Kaedah async: Untuk menggunakan await, tentukan kaedah async dalam kelas, biasanya mengembalikan Tugasan atau Tugasan.
   public async Task MyAsyncMethod()
   {
       // Asynchronous code here
   }
  1. Panggil Kaedah async: Dalam kaedah lain, anda boleh memanggil kaedah async anda dengan kata kunci tunggu.
   await MyAsyncMethod();

Kata kunci menunggu

Kata kunci tunggu digunakan dalam kaedah async untuk menjeda pelaksanaan sehingga tugas yang ditunggu selesai. Ia membolehkan urutan panggilan meneruskan kerja lain tanpa menyekat.

async Task MyAsyncMethod()
{
    var result = await SomeAsyncTask();
    // Code after the await will execute when SomeAsyncTask is completed.
}

Pengendalian Pengecualian

Untuk mengendalikan pengecualian dalam kaedah tak segerak, anda boleh menggunakan blok cuba-tangkap standard. Apabila pengecualian dilemparkan dalam kaedah async, ia ditangkap dan disebarkan sebagai sebahagian daripada Tugasan.

try
{
    await SomeAsyncMethod();
}
catch (Exception ex)
{
    // Handle the exception
}

Token Pembatalan

Untuk membatalkan operasi tak segerak, anda boleh menggunakan CancellationToken. Hantar Token Pembatalan kepada kaedah tak segerak dan semak pembatalan dalam kaedah tersebut.

async Task MyAsyncMethod(CancellationToken cancellationToken)
{
    // Check for cancellation
    cancellationToken.ThrowIfCancellationRequested();

    // Continue with the operation
}

Contoh Dunia Nyata

Berikut ialah contoh senario dunia sebenar yang biasa: membuat permintaan HTTP secara tidak segerak.

public async Task<string> FetchDataAsync(string url)
{
    using (var httpClient = new HttpClient())
    {
        var response = await httpClient.GetAsync(url);
        response.EnsureSuccessStatusCode();
        return await response.Content.ReadAsStringAsync();
    }
}

Apa Seterusnya?

Menggunakan await dan async Task dalam C# membolehkan anda menulis aplikasi yang responsif dan cekap, terutamanya apabila berurusan dengan tugasan terikat I/O atau jangka panjang. Ia membolehkan anda memastikan aplikasi anda responsif dan meningkatkan keseluruhan pengalaman pengguna dengan membenarkan berbilang tugasan dijalankan serentak tanpa menyekat urutan utama.

Atas ialah kandungan terperinci C# | Pengaturcaraan tak segerak dengan [async | menunggu | Tugasan]. 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
Artikel sebelumnya:C# | Amalan TerbaikArtikel seterusnya:C# | Amalan Terbaik