pengaturcaraan asynchronous (menggunakan async/menunggu) mempunyai kelebihan yang signifikan dalam pembangunan. Walau bagaimanapun, dalam beberapa kes, tugas -tugas tak segerak perlu dilakukan secara serentak. Artikel ini memperkenalkan kaedah tambahan RunSync, yang boleh melaksanakan tugas Async
secara serentak untuk menyelesaikan permintaan ini.
Melaksanakan butiran
customerList = AsyncHelpers.RunSync(() => GetCustomers());
Kaedah RunSync berjalan dengan mencipta konteks penyegerakan eksklusif dan menetapkannya kepada konteks semasa. Konteks ini membolehkan mesej pemprosesan dan memastikan pelaksanaan segerak tugas tak segerak. Untuk menangani sebarang kelainan yang mungkin, kaedah ini menggunakan kelas swasta bernama ExclusiveNinationContext, yang memperluaskan SynchronizationContext. Dalam konteks, tugas itu dikeluarkan, dan acara WorkItemaiting telah ditetapkan untuk menghantar isyarat, menunjukkan bahawa projek itu sedang menunggu. Kemudian, kaedah BeginMessageloop mengendalikan semua item yang dipautkan sehingga tugas selesai. Selepas siapnya, ExclusIvesYnchronizationContext akan dipulihkan dan hasil tugas akan dikembalikan.
Deskripsi Lain
Kod yang disediakan tidak dimiliki oleh penulis dan masih ditinjau. Walau bagaimanapun, ia membuktikan bahawa ia berkesan dalam pelbagai kes, termasuk keadaan menggantung program penjadualan.
Kesimpulan
Dengan menggunakan kaedah tambahan RunSync, pemaju boleh melaksanakan tugas -tugas asynchronous serentak untuk mengembangkan fungsi pengaturcaraan tak segerak. EXCLUSIVESYNCHRONIZATIONContext dan pemprosesan kitaran mesej Pastikan tugas itu boleh dipercayai dan berkesan dalam penyegerakan.
Atas ialah kandungan terperinci Bagaimanakah saya boleh menjalankan tugas async secara serentak dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!