.NET-HILFE

C# Wait For Seconds (Wie es für Entwickler funktioniert)

Veröffentlicht 15. August 2024
Teilen Sie:

Beim Programmieren möchten Sie manchmal die Ausführung Ihres Codes für eine bestimmte Zeit unterbrechen oder verzögern. So können Sie verschiedene Zeitbedingungen simulieren, bestimmte Aufgaben priorisieren, andere Aufgaben ausführen, ohne den Hauptthread zu blockieren, und vieles mehr.

In diesem Handbuch wird erklärt, wie man in C# wartet, einschließlich asynchroner Methoden, Sleep-Befehl, Sleep-Funktion und Konsolenanwendungen, und wie man eine Wait-Funktion in unser branchenführendes PDF-Generierungstool IronPDF integriert.

Wie Await Aufgabe in C & num;

Der Befehl Sleep

sleep" ist ein einfacher, aber leistungsfähiger Befehl, mit dem Sie die Ausführung der aktuellen Aufgabe für eine bestimmte Zeit unterbrechen können, so dass Ihr Programm im Wesentlichen wartet, bevor es zur nächsten Aufgabe übergeht. In C# geschieht dies mit der Funktion Thread.Sleep(int Millisekunden) methode, wie im folgenden Codebeispiel:

using System;
using System.Threading;

class Program
{
    public static void Main()
    {
        Console.WriteLine("Starting the program...");
        Thread.Sleep(3000); // Sleep for 3 seconds
        Console.WriteLine("...Program continues after 3 seconds");
    }
}
using System;
using System.Threading;

class Program
{
    public static void Main()
    {
        Console.WriteLine("Starting the program...");
        Thread.Sleep(3000); // Sleep for 3 seconds
        Console.WriteLine("...Program continues after 3 seconds");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Hier beginnt das Programm, indem es "Starting the program..." auf der Konsole ausgibt, bevor es die Methode Thread.Sleep verwendet, um eine Pause von 3.000 Millisekunden einzulegen (oder drei Sekunden). Nach der angegebenen Verzögerung wird das Programm fortgesetzt und gibt die Ausgabe "...Program continues after 3 seconds" auf der Konsole aus.

Async-Methode und Tasks

Async-Methoden in C# ermöglichen es Ihnen, mehrere Aufgaben gleichzeitig auszuführen, ohne den Hauptthread zu beeinträchtigen. Das bedeutet, dass, während eine Aufgabe wartet, andere Aufgaben weiterlaufen können. Um eine asynchrone Methode zu implementieren, müssen Sie das Schlüsselwort async und die Klasse Task verwenden.

using System;
using System.Threading.Tasks;

class Program
{
   public static async Task Main()
   {
       Console.WriteLine("Starting Task 1...");
       var task1 = DoSomethingAsync(3000);
       Console.WriteLine("Starting Task 2...");
       var task2 = DoSomethingAsync(2000);

       await Task.WhenAll(task1, task2);
       Console.WriteLine("Both tasks completed.");
   }

   private static async Task DoSomethingAsync(int milliseconds)
   {
       await Task.Delay(milliseconds);
       Console.WriteLine($"Task completed after {milliseconds} milliseconds");
   }
}
using System;
using System.Threading.Tasks;

class Program
{
   public static async Task Main()
   {
       Console.WriteLine("Starting Task 1...");
       var task1 = DoSomethingAsync(3000);
       Console.WriteLine("Starting Task 2...");
       var task2 = DoSomethingAsync(2000);

       await Task.WhenAll(task1, task2);
       Console.WriteLine("Both tasks completed.");
   }

   private static async Task DoSomethingAsync(int milliseconds)
   {
       await Task.Delay(milliseconds);
       Console.WriteLine($"Task completed after {milliseconds} milliseconds");
   }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

In diesem Codebeispiel werden zwei Aufgaben gleichzeitig ausgeführt. Die DoSomethingAsync-Methode erhält einen int-Parameter, der die Zeit in Millisekunden angibt, die die Aufgabe verzögert werden soll (wie Sie an den Werten "3000" und "2000" im Code sehen können, haben beide einen Timeout-Wert). Die Methode Task.Delay ist ähnlich der Methode Thread.Sleep() methode, aber sie funktioniert mit asynchronen Aufgaben und blockiert den Hauptthread nicht.

Zeitschaltuhren für die Planung Ihrer Aufgaben verwenden

Timer in C# ermöglichen es Ihnen, eine bestimmte Aufgabe nach einem bestimmten Intervall auszuführen. Sie können einen Zeitgeber mit der Klasse System.Timers.Timer erstellen. Hier ist ein Beispiel für die Verwendung eines Timers in einer Konsolenanwendung:

using System;
using System.Timers;

class Program
{
   public static void Main()
   {
       var timer = new Timer(1000); // Create a timer with a 1-second interval
       timer.Elapsed += OnTimerElapsed;
       timer.AutoReset = true;
       timer.Enabled = true;

       Console.WriteLine("Press any key to exit...");
       Console.ReadKey();
   }

   private static void OnTimerElapsed(object sender, ElapsedEventArgs e)
   {
       Console.WriteLine("Timer ticked at " + e.SignalTime);
   }
}
using System;
using System.Timers;

class Program
{
   public static void Main()
   {
       var timer = new Timer(1000); // Create a timer with a 1-second interval
       timer.Elapsed += OnTimerElapsed;
       timer.AutoReset = true;
       timer.Enabled = true;

       Console.WriteLine("Press any key to exit...");
       Console.ReadKey();
   }

   private static void OnTimerElapsed(object sender, ElapsedEventArgs e)
   {
       Console.WriteLine("Timer ticked at " + e.SignalTime);
   }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Im obigen Beispiel erstellen wir einen Timer mit einem Intervall von 1 Sekunde. Die Methode OnTimerElapsed wird jedes Mal ausgeführt, wenn der Timer tickt. Wir setzen die Eigenschaft AutoReset auf true, damit der Timer nach jedem Ticken automatisch neu startet. Die Eigenschaft Enabled wird auf true gesetzt, um den Timer zu starten.

Wenn Sie diese Konsolenanwendung ausführen, werden Sie sehen, dass der Timer jede Sekunde tickt und die Tickzeit auf der Konsole ausgibt. Das Programm läuft weiter, bis Sie eine beliebige Taste zum Beenden drücken.

Benutzerdefinierte Wartefunktionen erstellen

Manchmal benötigen Sie vielleicht eine benutzerdefinierte Wartefunktion, um bestimmte Anforderungen in Ihrem Code zu erfüllen. Sie könnten z. B. eine Wait-Funktion erstellen, die nur die aktuelle Aufgabe und nicht den gesamten Thread blockiert. Sie können dies mit asynchronen Delegaten erreichen.

Hier ist ein Beispiel für eine benutzerdefinierte Wartefunktion:

using System;
using System.Threading;
using System.Threading.Tasks;

class Program
{
   public static async Task Main()
   {
       Console.WriteLine("Starting Task 1...");
       await CustomWaitAsync(3000);
       Console.WriteLine("Task 1 completed.");

       Console.WriteLine("Starting Task 2...");
       await CustomWaitAsync(2000);
       Console.WriteLine("Task 2 completed.");
   }

   private static async Task CustomWaitAsync(int milliseconds)
   {
       await Task.Run(() => Thread.Sleep(milliseconds));
   }
}
using System;
using System.Threading;
using System.Threading.Tasks;

class Program
{
   public static async Task Main()
   {
       Console.WriteLine("Starting Task 1...");
       await CustomWaitAsync(3000);
       Console.WriteLine("Task 1 completed.");

       Console.WriteLine("Starting Task 2...");
       await CustomWaitAsync(2000);
       Console.WriteLine("Task 2 completed.");
   }

   private static async Task CustomWaitAsync(int milliseconds)
   {
       await Task.Run(() => Thread.Sleep(milliseconds));
   }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Hier akzeptiert die Methode CustomWaitAsync einen Parameter int, der die Verzögerungszeit in Millisekunden angibt. Die Methode verwendet einen asynchronen Delegaten, um die Funktion Thread.Sleep innerhalb einer neuen Aufgabe auszuführen, wodurch sichergestellt wird, dass der aktuelle Aufgabenstatus während des Wartens blockiert wird, nicht aber der Hauptthread.

Die Wahl der richtigen Wartestrategie

Nachdem wir nun die C#-Warteanweisung, den Sleep-Befehl, asynchrone Methoden, Timer und benutzerdefinierte Wartefunktionen behandelt haben, ist es wichtig zu wissen, wann die einzelnen Techniken zu verwenden sind. Hier ist eine kurze Zusammenfassung

  • Verwenden Sie die Funktion Thread.Sleep, wenn Sie eine einfache Möglichkeit benötigen, die Ausführung Ihres Codes für eine bestimmte Zeitspanne zu unterbrechen
  • Verwenden Sie asynchrone Methoden und Aufgaben, wenn Sie mehrere Aufgaben gleichzeitig ausführen müssen, ohne den Hauptthread zu blockieren
  • Verwenden Sie Zeitgeber, wenn Sie eine bestimmte Aufgabe in einem bestimmten Intervall ausführen müssen
  • Erstellen Sie benutzerdefinierte Wartefunktionen, wenn Sie spezielle Anforderungen haben, die von den integrierten Methoden nicht erfüllt werden

Erzeugen von PDFs mit IronPDF unter Verwendung der Wait-Funktion

IronPDF ist eine leichtgewichtige .NET PDF-Bibliothek, die speziell für Webentwickler entwickelt wurde. Es macht das Lesen, Schreiben und Bearbeiten von PDF-Dateien zu einem Kinderspiel. Es kann alle Arten von Dateitypen in PDF-Inhalte konvertieren und Sie können es in Ihren .NET-Projekten für Desktop und Web verwenden. Und das Beste daran: Sie können es kostenlos in einer Entwicklungsumgebung ausprobieren. Lassen Sie uns eintauchen.

IronPDF arbeitet mit HTML-Dateien, URLs, Raw Strings und ZIP-Dateien. Hier ist ein kurzer Überblick über den Code:

using IronPdf;

class Program
{
   static void Main(string [] args)
   {
       var renderer = new ChromePdfRenderer();

       // 1. Convert HTML String to PDF
       var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
       var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
       pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

       // 2. Convert HTML File to PDF
       var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
       var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
       pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

       // 3. Convert URL to PDF
       var url = "http://ironpdf.com"; // Specify the URL
       var pdfFromUrl = renderer.RenderUrlAsPdf(url);
       pdfFromUrl.SaveAs("URLToPDF.pdf");
   }
}
using IronPdf;

class Program
{
   static void Main(string [] args)
   {
       var renderer = new ChromePdfRenderer();

       // 1. Convert HTML String to PDF
       var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
       var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
       pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

       // 2. Convert HTML File to PDF
       var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
       var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
       pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

       // 3. Convert URL to PDF
       var url = "http://ironpdf.com"; // Specify the URL
       var pdfFromUrl = renderer.RenderUrlAsPdf(url);
       pdfFromUrl.SaveAs("URLToPDF.pdf");
   }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

IronPDF kann nahtlos in Ihre Wartestrategien integriert werden, um PDF-Dokumente nach der Ausführung von Aufgaben, während geplanter Intervalle oder bei Wiederaufnahme der Ausführung des aktuellen Threads zu generieren.

Sie können IronPDF beispielsweise in Kombination mit einer asynchronen Methode verwenden, um nach dem Abrufen von Daten aus einer Datenbank einen PDF-Bericht zu erstellen, ohne den Hauptthread zu blockieren. In ähnlicher Weise können Sie eine Timer-Klasse verwenden, um in regelmäßigen Abständen einen PDF-Snapshot der Daten Ihrer Anwendung zu erstellen.

Installieren Sie die IronPDF-Bibliothek

IronPDF ist einfach zu benutzen, aber noch einfacher zu installieren. Es gibt mehrere Möglichkeiten, dies zu tun:

Methode 1: NuGet-Paketmanager-Konsole

Klicken Sie in Visual Studio im Projektmappen-Explorer mit der rechten Maustaste auf Referenzen und dann auf NuGet-Pakete verwalten. Klicken Sie auf "Durchsuchen" und suchen Sie nach "IronPDF", und installieren Sie die neueste Version. Wenn Sie das sehen, funktioniert es:

Sie können auch zu Tools -> NuGet Package Manager -> Packet Manager Console gehen und die folgende Zeile auf der Registerkarte Package Manager eingeben:

Installations-Paket IronPDF

Schließlich können Sie IronPDF direkt von NuGet's offizielle Website. Wählen Sie die Option Paket herunterladen aus dem Menü rechts auf der Seite, doppelklicken Sie auf das heruntergeladene Paket, um es automatisch zu installieren, und laden Sie die Projektmappe erneut, um es in Ihrem Projekt zu verwenden.

Es hat nicht geklappt? Plattformspezifische Hilfe finden Sie auf unserer erweiterte NuGet-Installationsseite.

Methode 2: Verwendung einer DLL-Datei

Sie können die IronPDF DLL-Datei auch direkt von uns beziehen und sie manuell zu Visual Studio hinzufügen. Ausführliche Anweisungen und Links zu den Windows-, MacOS- und Linux-DLL-Paketen finden Sie in unserer speziellen installationsseite.

Wie man C# Wait in IronPDF verwendet

Im folgenden Beispiel sehen Sie, wie Sie eine Wartefunktion in IronPDF einbinden können:

using System;
using System.Threading.Tasks;
using System.Diagnostics;
using IronPdf;

class Program
{
   public static async Task Main()
   {
       Console.WriteLine("Starting the PDF generation task...");
   Stopwatch stopwatch = Stopwatch.StartNew();
       await Task.Delay(3000); // Wait for 3 seconds
       GeneratePdf();
       Console.WriteLine("PDF generated successfully.");
   }

   private static void GeneratePdf()
   {
       var htmlToPdf = new ChromePdfRenderer();
       var pdf = htmlToPdf.RenderHtmlAsPdf("<h1>Hello, World!</h1>");
       pdf.SaveAs("HelloWorld.pdf");
   }
}
using System;
using System.Threading.Tasks;
using System.Diagnostics;
using IronPdf;

class Program
{
   public static async Task Main()
   {
       Console.WriteLine("Starting the PDF generation task...");
   Stopwatch stopwatch = Stopwatch.StartNew();
       await Task.Delay(3000); // Wait for 3 seconds
       GeneratePdf();
       Console.WriteLine("PDF generated successfully.");
   }

   private static void GeneratePdf()
   {
       var htmlToPdf = new ChromePdfRenderer();
       var pdf = htmlToPdf.RenderHtmlAsPdf("<h1>Hello, World!</h1>");
       pdf.SaveAs("HelloWorld.pdf");
   }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Hier verwenden wir die Methode Task.Delay, um 3 Sekunden lang zu warten, bevor wir eine PDF-Datei erzeugen. Die PDF-Datei wird dann nach Abschluss der Wartezeit als "HelloWorld.pdf" im Arbeitsverzeichnis der Anwendung gespeichert.

Und hier ist das Endprodukt:

Verwendung der Warte-Methode mit IronPDF

In C#-Anwendungen können Sie die Sleep-Funktion effizient nutzen, um die aktuelle Thread- und CPU-Zeit zu verwalten, während Sie Operationen wie das Laden von Daten in eine DataTable oder die Erstellung von PDF-Berichten mit IronPDF durchführen.

Schlussfolgerung

Es mag auf den ersten Blick kontraintuitiv erscheinen, aber die Implementierung von Warteanweisungen in Ihren Code ist ein Muss für die Erstellung effizienter Anwendungen. Durch die Integration von IronPDF können Sie Ihre Anwendungen auf die nächste Stufe heben, indem Sie PDF-Dokumente on-the-fly erstellen, ohne den Hauptthread zu blockieren.

Sind Sie bereit, IronPDF in die Hand zu nehmen? Sie können mit unserem 30 Tage kostenloser Test. Außerdem ist die Nutzung für Entwicklungszwecke völlig kostenlos, so dass Sie wirklich sehen können, was in ihm steckt. Und wenn Ihnen gefällt, was Sie sehen, beginnt IronPDF bereits ab einem Preis von $749. Noch größere Einsparungen können Sie mit dem Iron Suite wo Sie alle neun Iron Software Tools zum Preis von zwei erhalten. Fröhliches Kodieren!

< PREVIOUS
Razor C# (Wie es für Entwickler funktioniert)
NÄCHSTES >
C# For Loop (Wie es für Entwickler funktioniert)

Sind Sie bereit, loszulegen? Version: 2024.10 gerade veröffentlicht

Gratis NuGet-Download Downloads insgesamt: 11,308,499 Lizenzen anzeigen >