c#pengaturcaraan asynchronous: Risiko kebuntuan tugas.wait dan menunggu
dalam pengaturcaraan C Kedua -duanya digunakan untuk menyegerakkan operasi tak segerak, tetapi kesan merealisasikan tingkah laku benang sangat berbeza.
Sebagai contoh, jika kaedah menggunakan Task.Wait
untuk menunggu pelbagai tugas untuk diselesaikan, kaedah halangan segerak ini boleh menyebabkan kunci mati. Kerana kaedah dan tugas tak segerak yang sedang menunggu pada benang yang sama. Benang tidak boleh meneruskan tugas -tugas yang tidak segerak selepas menyekat, menyebabkan kunci mati. await
, kaedah yang mengandungi ia akan "menjeda" dan mengembalikan tugas yang belum selesai kepada pemanggil. Ini membolehkan pemanggil untuk meneruskan pelaksanaan, manakala ungkapan GET
tidak segerak. Apabila ekspresi selesai, bahagian yang tersisa dari kaedah disusun untuk operasi mengikuti. Task.WaitAll
GET
Singkat Untuk mengelakkan kunci mati dalam adegan tak segerak, adalah disyorkan untuk menggunakan strategi dan penggunaan "penuh asynchronous"
Atas ialah kandungan terperinci Task.wait vs menunggu: Bilakah menunggu tidak segerak membawa kepada kebuntuan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!