Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menjalankan Kaedah Asynchronous secara kerap dalam C# tanpa Menyekat Permintaan Pengguna?
Melaksanakan Operasi Tak Segerak Berjadual Secara Tetap dalam Aplikasi Web C#
Cabaran biasa dalam pembangunan web C# melibatkan penghantaran data terkumpul secara berkala ke perkhidmatan luaran. Untuk mengelakkan menyekat permintaan pengguna, pembangun memerlukan mekanisme untuk melaksanakan kaedah tak segerak pada selang masa yang ditetapkan dalam urutan yang berasingan.
Walaupun kelas Timer
menawarkan pendekatan mudah untuk pelaksanaan bermasa, tandatangannya tidak serasi secara langsung dengan kaedah tak segerak. Penyelesaian yang lebih berkesan menggunakan gelung while
digabungkan dengan Task.Delay
, seperti yang digambarkan:
<code class="language-csharp">public async Task PeriodicFooAsync(TimeSpan interval, CancellationToken cancellationToken) { while (!cancellationToken.IsCancellationRequested) { await FooAsync(); await Task.Delay(interval, cancellationToken); } }</code>
Gelung ini berulang kali memanggil FooAsync
pada selang waktu yang ditentukan oleh parameter TimeSpan
. Kemasukan CancellationToken
adalah penting untuk penamatan gelung yang anggun, terutamanya dalam ASP.NET, di mana tugas latar belakang yang tidak terkawal boleh menimbulkan isu.
Untuk pengurusan tugas latar belakang yang mantap dalam aplikasi ASP.NET, pertimbangkan untuk menggunakan perpustakaan khusus seperti Hangfire atau melaksanakan strategi yang digariskan dalam sumber seperti "Fire and Forget on ASP.NET" Stephen Cleary dan "Cara menjalankan Tugas Latar Belakang dalam ASP" Scott Hanselman .BERSIH". Ini menawarkan pendekatan yang lebih canggih untuk mengendalikan proses latar belakang yang berjalan lama atau berpotensi mengganggu.
Atas ialah kandungan terperinci Bagaimana untuk Menjalankan Kaedah Asynchronous secara kerap dalam C# tanpa Menyekat Permintaan Pengguna?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!