Rumah >pembangunan bahagian belakang >C++ >Bagaimana saya boleh memanggil kaedah asynchronous dari kaedah segerak dalam C#?
Memanggil kaedah asynchronous dalam kod segerak (biasanya logo simbol pengubahsuaian async) adalah masalah pembangunan yang sama. Pengaturcaraan Asynchronous boleh melaksanakan operasi Ketua Pegawai Eksekutif untuk masa yang lama sambil mengekalkan tindak balas UI, tetapi ini biasanya perlu menyesuaikan struktur kod, yang mungkin tidak sepadan dengan kaedah penyegerakan yang ada.
pelan 1: tugas.waitandunwrapexception
Jika kaedah asynchronous (myasyncmedhod) boleh berjalan secara bebas, tanpa perlu menyegerakkan konteks, anda boleh menggunakan tugas.
Pelan 2: AsyncContext.Runtask
<code class="language-csharp">var task = MyAsyncMethod(); var result = task.WaitAndUnwrapException();</code>atau, jika myasyncmedhod perlu disegerakkan dengan konteks, asynccontext.runtask menyediakan kaedah konteks bersarang:
pelan 3: task.run
Dalam beberapa kes, asynccontext.runtask mungkin terhad, seperti kaedah asynchronous yang bergantung kepada peristiwa UI. Dalam kes ini, kaedah asynchronous boleh dilakukan di kolam thread:
<code class="language-csharp">var result = AsyncContext.RunTask(MyAsyncMethod).Result;</code>Sila ambil perhatian bahawa kaedah ini memerlukan MyAsyncMethod boleh bersesuaian dengan konteks kolam thread, termasuk sekatan pada kemas kini elemen UI dan akses konteks permintaan ASP.NET.
Atas ialah kandungan terperinci Bagaimana saya boleh memanggil kaedah asynchronous dari kaedah segerak dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!