Rumah > pembangunan bahagian belakang > C++ > Task.Result vs GetAwaiter (). GetResult (): Kaedah mana yang harus anda gunakan untuk pelaksanaan tugas segerak?

Task.Result vs GetAwaiter (). GetResult (): Kaedah mana yang harus anda gunakan untuk pelaksanaan tugas segerak?

Mary-Kate Olsen
Lepaskan: 2025-01-24 11:56:10
asal
635 orang telah melayarinya

Task.Result vs. GetAwaiter().GetResult(): Which Method Should You Use for Synchronous Task Execution?

Task.Result and .GetAwaiter ().

Apabila memproses kod asynchronous, pemaju sering perlu melakukan kaedah pelaksanaan serentak. Ini boleh dilaksanakan menggunakan atau . Walau bagaimanapun, terdapat perbezaan halus antara kedua -dua kaedah ini, yang patut dipertimbangkan.

Task.getAwait (). Task.Result Ketiga kaedah ini akan menyekat benang panggilan dan menunggu tugas selesai. Walau bagaimanapun, lebih baik daripada dan .GetAwaiter().GetResult(), kerana ia secara langsung menyebarkan kelainan yang dibuang oleh tugas, bukan untuk membungkusnya dalam

. Tingkah laku ini sangat penting untuk rawatan yang betul.

Task.wait dan Task.Result Mengapa tidak menyebarkan tidak normal

Menurut Microsoft, reka bentuk Task.GetAwaiter().GetResult() dan Task.Wait adalah untuk mengekalkan keserasian mundur. Oleh itu, mereka dibungkus dalam Task.Result untuk mengekalkan kod sedia ada. Walau bagaimanapun, kaedah ini boleh membuat kesilapan dalam menentukan tugas sebenar sukar. AggregateException

cadangan

Walaupun mempunyai lebih banyak kelebihan dalam rawatan yang tidak normal daripada

dan

, ketiga -tiga kaedah ini boleh membawa kepada kunci yang berpotensi mati dan kelaparan kolam benang. Amalan terbaik adalah untuk mengelakkan menyekat tugas -tugas tak segerak, tetapi bergantung pada mod Task.Wait, yang membolehkan aplikasi terus bekerja ketika melaksanakan tugas di latar belakang. Task.Result

Atas ialah kandungan terperinci Task.Result vs GetAwaiter (). GetResult (): Kaedah mana yang harus anda gunakan untuk pelaksanaan tugas segerak?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan