Rumah >pembangunan bahagian belakang >C++ >Kaedah Async: Task.Run vs. Native Async - Bilakah Saya Perlu Menggunakan Yang Mana?
Apabila bekerja dengan pengaturcaraan tak segerak, adalah penting untuk memahami perbezaan antara melaksanakan kod secara tak segerak dan mencipta kaedah yang boleh ditunggu.
Task.Run dan Asynchronous Pelaksanaan:
Task.Run melaksanakan kod pada urutan latar belakang, menjadikannya kelihatan tidak segerak. Walau bagaimanapun, pendekatan ini tidak mewujudkan kaedah yang benar-benar tak segerak. Urutan panggilan kekal disekat sehingga Tugasan selesai.
Contoh:
private async Task DoWork2Async() { Task.Run(() => { int result = 1 + 2; }); }
Dalam contoh ini, DoWork2Async tidak benar-benar tak segerak kerana urutan panggilan masih akan disekat semasa Tugasan dilaksanakan pada urutan latar belakang.
Async Asli Kaedah:
Kaedah async asli diisytiharkan dengan kata kunci async dan membolehkan kawalan kembali kepada pemanggil sebelum pelaksanaan bermula. Pemanggil kemudiannya boleh terus melaksanakan kod lain sementara menunggu operasi async selesai.
Contoh:
private async Task DoWork1Async() { int result = 1 + 2; }
Dalam contoh ini, DoWork1Async ialah kaedah async asli . Apabila anda menunggunya, urutan panggilan akan dikeluarkan, membenarkan kod lain untuk dilaksanakan sementara menunggu operasi tak segerak selesai.
Kesimpulan:
Untuk mencipta kaedah tak segerak menunggu, kata kunci tak segerak harus digunakan tanpa membungkus kod segerak dalam Task.Run. Ini membolehkan pelaksanaan tak segerak yang benar, di mana urutan panggilan tidak disekat semasa operasi asinkron sedang dilakukan.
Atas ialah kandungan terperinci Kaedah Async: Task.Run vs. Native Async - Bilakah Saya Perlu Menggunakan Yang Mana?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!