Heim >Backend-Entwicklung >C++ >Wie kann ich in regelmäßigen Abständen in C#asynchrone Methoden ausführen?

Wie kann ich in regelmäßigen Abständen in C#asynchrone Methoden ausführen?

Barbara Streisand
Barbara StreisandOriginal
2025-01-26 11:01:09465Durchsuche

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

C#mitteltermische Ausführung Asynchroner Methode

Dieser Artikel bietet eine Lösung für den Dienst für den Dienst aus der C# -WEB -Anwendung mit einer asynchronen Methode und dem

-Zyklus.

while Die Einschränkungen der Timer -Klasse

Die -Klasse, die normalerweise für die Planung von Aufgaben verwendet wird, wodurch die Signatur

-Methode akzeptiert wird. Dies führt zu Beschränkungen, wenn Sie versuchen, asynchrone Methoden auszuführen, um Webdienste anzurufen.

Timer Asynchroner Taskzyklus void MethodName(object e, ElapsedEventArgs args)

Um diese Grenze zu überwinden, können Sie Zyklusbindung :

verwenden

while Dieser Zyklus wird regelmäßig nach der Task.Delay -Methode ausgeführt und verwendet das angegebene Intervall und das Stornierungs -Token. Sie können den Zyklus jederzeit einstellen, indem Sie die Token aus Webanwendungen übergeben.

<code class="language-csharp">public async Task PeriodicFooAsync(TimeSpan interval, CancellationToken cancellationToken)
{
    while (!cancellationToken.IsCancellationRequested) // 使用CancellationToken改进
    {
        await FooAsync();
        await Task.Delay(interval, cancellationToken);
    }
}</code>
Andere Vorsichtsmaßnahmen

FooAsync

Für ASP.NET -Anwendungen ist es wichtig, den Betrieb "Startup und Vergessen" zu vermeiden, der die Leistung der Anwendung beeinflussen kann. Um eine zuverlässige Hintergrundaufgabe zu gewährleisten, sollten Sie spezielle Dienste oder Tools wie Hangfire oder Quartz.net verwenden. Dadurch wird sichergestellt, dass die Aufgabe außerhalb des normalen Betriebs der Anwendung verwaltet wird, um Ressourcenkonflikte zu vermeiden.

Das obige ist der detaillierte Inhalt vonWie kann ich in regelmäßigen Abständen in C#asynchrone Methoden ausführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn