Rumah >pembangunan bahagian belakang >C++ >Await Task.Run () vs Task.Run (): Apakah perbezaan utama dalam pengaturcaraan C# Asynchronous?
c#pengaturcaraan asynchronous
perbezaan utama antara await Task.Run()
return Task.Run()
Dalam pengaturcaraan asynchronous, sering kali perlu melakukan operasi di luar benang UI untuk mengelakkan permohonan permohonan. Ini boleh dicapai melalui tugas di C#. Walau bagaimanapun, terdapat perbezaan halus antara
apabila berurusan dengan keabnormalan dan aspek lain. await Task.Run()
return Task.Run()
<.> 1. Disposure:
Perbezaan utama ialah komunikasi yang tidak normal. Dalam <:> keadaan:
Keabnormalan dalam tugas tak segerak hanya akan menyebarkan kaedah panggil balik hanya apabila menunggu tugas. await Task.Run()
return Task.Run()
Ini boleh menyebabkan kesilapan yang tidak disengajakan dan kebuntuan yang berpotensi.
sebaliknya, versi tidak bergantung kepada konteks penyegerakan. Meneruskan susunan program penjadualan tugas lalai, yang mungkin berbeza dari konteks penyegerakan benang panggilan.
<.> 3. Kod yang dihasilkan: await Task.Run()
return Task.Run()
Contoh kod:
Contoh kod berikut menggambarkan perbezaan ini:
Contoh 1: await Task.Run()
return Task.Run()
Dalam kedua -dua contoh ini, "DosomeWork ()" adalah kaedah melakukan pekerjaan tertentu di luar benang UI.
Kesimpulan:
Pilihan dan
bergantung kepada keperluan khusus aplikasi. Apabila mengawal penyebaran yang tidak normal dan memastikan konteks penyegerakan yang betul adalah penting, adalah disyorkan untuk menggunakan<code class="language-csharp">async Task TestAsync() { await Task.Run(() => DoSomeWork()); // 异常在等待时传播回 }</code>. Apabila ia tidak menjadi masalah untuk menyebarkan anomali atau menyegerakkan konteks dengan segera,
sesuai.
Atas ialah kandungan terperinci Await Task.Run () vs Task.Run (): Apakah perbezaan utama dalam pengaturcaraan C# Asynchronous?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!