Apakah itu ConfigureAwait?
Apakah itu ConfigureAwait?

Video: Apakah itu ConfigureAwait?

Video: Apakah itu ConfigureAwait?
Video: How To Achieve Synchronization In C# While Doing Async Await Multithreaded Programming - .NET Core 2024, Mungkin
Anonim

ConfigureAwait (palsu) melibatkan tugas yang telah siap pada masa ia ditunggu (yang sebenarnya sangat biasa), kemudian ConfigureAwait (false) tidak akan bermakna, kerana benang terus melaksanakan kod dalam kaedah selepas ini dan masih dalam konteks yang sama yang ada sebelum ini.

Selepas itu, seseorang juga mungkin bertanya, apakah kegunaan ConfigureAwait palsu?

ConfigureAwait ( salah ) mengkonfigurasi tugas supaya kesinambungan selepas menunggu tidak perlu dijalankan dalam konteks pemanggil, oleh itu mengelakkan sebarang kemungkinan kebuntuan.

Di samping di atas, apakah itu SynchronizationContext? Konteks Penyegerakan ialah perwakilan persekitaran semasa yang kod kami sedang berjalan. Iaitu, dalam atur cara tak segerak, apabila kami mewakilkan unit kerja ke urutan lain, kami menangkap persekitaran semasa dan menyimpannya dalam contoh Konteks Penyegerakan dan letakkannya pada objek Tugas.

Dengan mengambil kira perkara ini, apakah kegunaan ConfigureAwait?

menggunakan ConfigureAwait (palsu) untuk mengelakkan kebuntuan adalah amalan yang berbahaya. Anda perlu melakukannya gunakan ConfigureAwait (palsu) untuk setiap penantian dalam penutupan transitif semua kaedah yang dipanggil oleh kod sekatan, termasuk semua kod pihak ketiga dan kedua. menggunakan ConfigureAwait (palsu) untuk mengelakkan kebuntuan adalah paling baik hanya hack).

Apa itu GetAwaiter?

GetAwaiter () kaedah, yang mengembalikan contoh yang mempunyai kaedah GetResult(). Apabila digunakan pada Tugasan yang rosak, GetResult() akan menyebarkan pengecualian asal (beginilah cara "menunggu tugas; "mendapat tingkah lakunya). GetResult() kerana ia mengekalkan pengecualian tugas dan bukannya membungkusnya dalam AggregateException.

Disyorkan: