Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Menjalankan Kaedah Asynchronous pada Selang Biasa dalam C#?

Bagaimanakah Saya Boleh Menjalankan Kaedah Asynchronous pada Selang Biasa dalam C#?

Barbara Streisand
Lepaskan: 2025-01-26 11:01:09
asal
425 orang telah melayarinya

How Can I Run Asynchronous Methods at Regular Intervals in C#?

c#pertengahan pelaksanaan kaedah asynchronous

Artikel ini menyediakan penyelesaian kepada perkhidmatan kepada perkhidmatan dari aplikasi Web C# dengan kaedah asynchronous dan kitaran

.

while Keterbatasan kelas pemasa

Kelas yang biasanya digunakan untuk tugas perancangan, menerima kaedah

tandatangan. Ini akan membawa sekatan apabila cuba melaksanakan kaedah asynchronous untuk memanggil perkhidmatan web.

Timer kitaran tugas asynchronous void MethodName(object e, ElapsedEventArgs args)

Untuk mengatasi had ini, anda boleh menggunakan mengikat kitaran :

while Kitaran ini akan dijalankan secara kerap oleh kaedah Task.Delay, dan menggunakan selang yang ditentukan dan token pembatalan. Anda boleh menghentikan kitaran pada bila -bila masa dengan lulus token dari aplikasi web.

<code class="language-csharp">public async Task PeriodicFooAsync(TimeSpan interval, CancellationToken cancellationToken)
{
    while (!cancellationToken.IsCancellationRequested) // 使用CancellationToken改进
    {
        await FooAsync();
        await Task.Delay(interval, cancellationToken);
    }
}</code>
Salin selepas log masuk
Langkah berjaga -jaga lain

FooAsync

Untuk aplikasi ASP.NET, adalah penting untuk mengelakkan operasi "permulaan dan lupa" yang boleh menjejaskan prestasi permohonan. Untuk memastikan tugas latar belakang yang boleh dipercayai, pertimbangkan untuk menggunakan perkhidmatan atau alat khas, seperti Hangfire atau Quartz.net. Ini akan memastikan bahawa tugas itu diuruskan di luar operasi biasa permohonan untuk mengelakkan konflik sumber.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menjalankan Kaedah Asynchronous pada Selang Biasa dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan