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.
. 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
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!