kerap melaksanakan tugas tak segerak dalam C#
Mengumpul dan menghantar data dengan cekap ke perkhidmatan tanpa memberi kesan kepada pengalaman pengguna memerlukan pelaksanaan kaedah berkala pada benang yang berasingan. Walaupun kelas C#'S
menawarkan pelaksanaan kaedah berkala, keperluan parameternya mungkin tidak sejajar dengan kaedah asynchronous. Timer
Invocation Kaedah Asynchronous
Contoh ini menunjukkan menggunakan kaedah asynchronous tanpa kekangan parameter
: Timer
<code class="language-csharp">public async Task PeriodicFooAsync(TimeSpan interval, CancellationToken cancellationToken)
{
while (!cancellationToken.IsCancellationRequested)
{
await FooAsync();
await Task.Delay(interval, cancellationToken);
}
}</code>
Salin selepas log masuk
di sini:
- berulang kali memanggil
PeriodicFooAsync
. FooAsync
- Menetapkan kelewatan antara hukuman mati.
interval
- membolehkan penamatan terkawal. Ini penting untuk penutupan anggun.
cancellationToken
Asp.net Pertimbangan
Walaupun berkesan secara umum. NET Aplikasi, pendekatan ini memerlukan pertimbangan yang teliti dalam ASP.NET. Operasi asynchronous "api-dan-forget" yang tidak terkawal boleh menimbulkan masalah. Untuk penyelesaian ASP.NET yang mantap, menyiasat perpustakaan seperti Hangfire atau merujuk sumber seperti "Kebakaran dan Lupakan di Asp.net" Stephen Cleary dan "Cara Mengendalikan Tugas Latar Belakang di Asp.Net" untuk amalan terbaik.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melancarkan Kaedah Async pada Selang Biasa dalam C# Tanpa Menyekat Permintaan Pengguna?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!