Maison >développement back-end >C++ >Comment puis-je exécuter des méthodes asynchrones à intervalles réguliers en C# ?

Comment puis-je exécuter des méthodes asynchrones à intervalles réguliers en C# ?

Barbara Streisand
Barbara Streisandoriginal
2025-01-26 11:01:09428parcourir

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

C # Méthode asynchrone EXÉCUTION MÉDICE

Cet article fournit une solution au service au service à partir de l'application Web C # avec une méthode asynchrone et le cycle

.

while Les limites de la classe de minuterie

La classe qui est généralement utilisée pour planifier des tâches, en acceptant la méthode Signature

. Cela apportera des restrictions lorsque vous essayez d'exécuter des méthodes asynchrones pour appeler les services Web.

Timer cycle de tâche asynchrone void MethodName(object e, ElapsedEventArgs args)

Afin de surmonter cette limite, vous pouvez utiliser liaison du cycle :

while Ce cycle sera régulièrement exécuté par la méthode Task.Delay et utilise l'intervalle spécifié et le jeton d'annulation. Vous pouvez arrêter le cycle à tout moment en passant les jetons à partir des applications 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>
Autres précautions

FooAsync

Pour les applications ASP.NET, il est essentiel d'éviter l'opération "Startup and Forget" qui peut affecter les performances de l'application. Afin d'assurer une tâche de fond fiable, envisagez d'utiliser des services ou des outils spéciaux, tels que Hangfire ou Quartz.net. Cela garantira que la tâche est gérée en dehors du fonctionnement normal de l'application pour éviter les conflits de ressources.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn