IRONSOFTWAREHOME
AKTUALNOŚCI DLA PROGRAMISTÓW

C# Stopwatch (jak to działa dla programistów)

Jacob Mellor, Dyrektor Technologiczny @ Team Iron
Jacob Mellor
Updated: 23 kwietnia 2026

W obszernym krajobrazie języków programowania C# wyróżnia się jako wszechstronny i potężny język używany do tworzenia szerokiej gamy aplikacji, począwszy od aplikacji na komputery stacjonarne po aplikacje sieciowe i mobilne. Jedną z kluczowych cech, które sprawiają, że C# jest ulubieńcem wśród deweloperów, jest jego bogaty zestaw bibliotek i klas, oferujący rozwiązania wielu wyzwań programistycznych. Wśród nich klasa Stopwatch zajmuje szczególne miejsce ze względu na swoją rolę w dokładnym pomiarze czasu, profilowaniu i analizie wydajności.

W tym artykułe pokażemy, jak używać obiektu Stopwatch w C#, aby znaleźć czas potrzebny do wykonania określonego zadania, korzystając z publicznej właściwości TimeSpan Elapsed. Ponadto zmierzymy całkowity upływ czasu mierzony podczas tworzenia PDF przy użyciu IronPDF for C# Developers.

1. Co to jest klasa Stopwatch?

Klasa Stopwatch jest częścią przestrzeni nazw System.Diagnostics w C# i zapewnia prosty oraz wydajny sposób pomiaru upływającego czasu z wysoką precyzją. Została wprowadzona wraz z .NET Framework i jest cennym narzędziem dla deweloperów do śledzenia czasu wykonania segmentów kodu, optymalizacji wydajności i profilowania aplikacji.

2. Inicjalizacja i podstawowe użycie

Użycie klasy Stopwatch jest proste. Aby rozpocząć jej używanie, najpierw należy utworzyć nową instancję klasy Stopwatch:

using System.Diagnostics;

class Program
{
    static void Main()
    {
        // Create a new stopwatch instance for timing operations
        Stopwatch stopwatch = new Stopwatch();
    }
}

Po utworzeniu instancji Stopwatch można rozpocząć i zatrzymać stoper, aby zmierzyć czas, jaki upłynął:

using System;

class Program
{
    static void Main()
    {
        Stopwatch stopwatch = new Stopwatch();
        
        // Start timing
        stopwatch.Start();
        Console.WriteLine("It will measure the time between start and stop");
        
        // Stop timing
        stopwatch.Stop();
    }
}

Czas, który upłynął, można uzyskać za pomocą właściwości Elapsed:

using System;

class Program
{
    static void Main()
    {
        Stopwatch stopwatch = new Stopwatch();
        stopwatch.Start();

        // Simulate some work by sleeping for 2 seconds
        System.Threading.Thread.Sleep(2000);

        // Stop timing
        stopwatch.Stop();

        // Fetch the elapsed time
        TimeSpan elapsed = stopwatch.Elapsed;
        Console.WriteLine($"Elapsed time: {elapsed}");
    }
}

Wynik:

C# Stopwatch (Jak to działa dla deweloperów): Rysunek 1 - Wynik System Timer

3. Zaawansowane funkcje Stopwatch

Klasa Stopwatch oferuje kilka zaawansowanych funkcji poza podstawowym pomiarem czasu. Poznajmy niektóre z tych funkcji:

3.1. Metoda Restart

Metoda Restart to wygodny sposób na zatrzymanie i zresetowanie upływającego czasu do zera w pojedynczej operacji. Może to być przydatne przy mierzeniu czasu wykonania wielu segmentów kodu bez tworzenia nowej instancji Stopwatch.

using System;

class Program
{
    static void Main()
    {
        Stopwatch stopwatch = new Stopwatch();
        
        // Start timing
        stopwatch.Start();
        Console.WriteLine("The time will restart after executing the below code");
        
        // Restart timing
        stopwatch.Restart();
        
        // Simulate work
        System.Threading.Thread.Sleep(1000);

        // Stop timing
        stopwatch.Stop();

        // Fetch the elapsed time after restart
        TimeSpan elapsed = stopwatch.Elapsed;
        Console.WriteLine($"Total Elapsed time after Restart: {elapsed}");
    }
}

Wynik:

C# Stopwatch (Jak to działa dla deweloperów): Rysunek 2 - Wynik Restart

3.2. Właściwość IsHighResolution

Właściwość IsHighResolution wskazuje, czy wykorzystywany mechanizm pomiaru czasu opiera się na liczniku wydajności o wysokiej rozdzielczości pozwalającym dokładnie mierzyć upływający czas. Sprawdzenie tej właściwości może być przydatne w przypadku systemów, które mogą nie obsługiwać metod pomiaru czasu o wysokiej rozdzielczości.

using System;

class Program
{
    static void Main()
    {
        if (Stopwatch.IsHighResolution)
        {
            Console.WriteLine("High-resolution timing is supported");
        }
        else
        {
            Console.WriteLine("Fallback to lower-resolution timing");
        }
    }
}

Wynik:

C# Stopwatch (Jak to działa dla deweloperów): Rysunek 3 - Wynik Pomiaru Wysokiej Rozdzielczości

3.3. Właściwość Frequency

Właściwość Frequency zwraca częstotliwość podstawowego zegara w taktach na sekundę. Ta wartość jest użyteczna do przeliczania upływu tików na inne jednostki czasu, takie jak milisekundy.

using System;

class Program
{
    static void Main()
    {
        long frequency = Stopwatch.Frequency;
        Console.WriteLine($"Timer Frequency: {frequency} ticks per second");
    }
}

Wynik:

C# Stopwatch (Jak to działa dla deweloperów): Rysunek 4 - Wynik Częstotliwości

3.4. Właściwość ElapsedTicks

Właściwość ElapsedTicks zapewnia bezpośredni dostęp do surowej liczby taktów bez potrzeby konwersji na jednostki czasu. Może to być korzystne przy wykonywaniu własnych obliczeń lub pracy z niskopoziomowymi wymaganiami pomiaru czasu.

using System;

class Program
{
    static void Main()
    {
        Stopwatch stopwatch = new Stopwatch();
        stopwatch.Start();

        // Simulate some work
        System.Threading.Thread.Sleep(1500);

        // Stop timing
        stopwatch.Stop();

        // Fetch the elapsed ticks
        long elapsedTicks = stopwatch.ElapsedTicks;
        Console.WriteLine($"Elapsed Ticks: {elapsedTicks}");
    }
}

Wynik:

C# Stopwatch (Jak to działa dla deweloperów): Rysunek 5 - Wynik Upływających Taktów

4. Introduction to IronPDF in C#

IronPDF to potężna biblioteka C# pozwalająca deweloperom na łatwe tworzenie, manipulowanie i przetwarzanie dokumentów PDF wewnątrz swoich aplikacji .NET. Niezależnie od tego, czy potrzebujesz generować PDF-y z HTML, obrazów lub innych formatów, IronPDF zapewnia kompleksowy zestaw narzędzi do bezproblemowej integracji z twoimi projektami C#.

IronPDF oferuje unikalną możliwość konwersji HTML na PDF zachowując układy i style. Ta funkcjonalność jest idealna do tworzenia PDF-ów z treści internetowych, takich jak raporty, faktury lub dokumentacja. Możesz konwertować pliki HTML, adresy URL oraz ciągi HTML na pliki PDF.

using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        // Initialize the PDF renderer
        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");
    }
}

4.1. Installation of IronPDF in C#

Aby zacząć korzystać z IronPDF w swojej aplikacji C#, wykonaj te proste kroki:

  1. Menadżer pakietów NuGet: Otwórz swój projekt C# w Visual Studio i przejdź do Konsoli Menadżera Pakietów. Wykonaj następujące polecenie, aby zainstalować IronPDF:

    PM > Install-Package IronPdf

    Alternatywnie, można użyć strony pakietu IronPDF NuGet, aby pobrać i zainstalować pakiet "IronPDF".

  2. Odwołanie w kodzie: Po pomyślnej instalacji dodaj odwołanie do IronPDF w swoim kodzie C#:

    using IronPdf;

    Teraz jesteś gotowy, aby wykorzystać możliwości IronPDF w swojej aplikacji.

4.2. Użycie C# Stopera do odmierzania czasu tworzenia PDF z URL

Teraz zademonstrujemy, jak użyć klasy Stopwatch w C# do pomiaru czasu potrzebnego do utworzenia PDF z URL za pomocą IronPDF:

using System;
using System.Diagnostics;
using IronPdf;

class Program
{
    static void Main()
    {
        // Initialize IronPDF Renderer
        IronPdf.HtmlToPdf Renderer = new IronPdf.HtmlToPdf();

        // Specify the URL for PDF generation
        string urlToConvert = "https://example.com";

        // Use Stopwatch to measure the time taken
        Stopwatch stopwatch = new Stopwatch();
        stopwatch.Start();

        // Create PDF from URL
        PdfDocument PDF = Renderer.RenderUrlAsPdf(urlToConvert);

        // Stop measuring elapsed time
        stopwatch.Stop();

        // Save the generated PDF to a file
        PDF.SaveAs("GeneratedPDF.pdf");

        // Display the time taken
        Console.WriteLine($"Time taken to create PDF from URL: {stopwatch.ElapsedMilliseconds} milliseconds");
    }
}

Przykład ten inicjalizuje IronPDF, używa klasy HtmlToPdf do renderowania PDF z określonego URL i mierzy czas potrzebny za pomocą Stopwatch. Dostosuj zmienną urlToConvert do żądanego URL i możesz dalej dostosowywać proces tworzenia PDF zgodnie z potrzebami aplikacji.

Wynik:

C# Stopwatch (Jak to działa dla deweloperów): Rysunek 6 - Wynik Timera Tworzenia PDF

5. Podsumowanie

Podsumowując, klasa Stopwatch w C# jest kluczowym narzędziem do dokładnego pomiaru czasu i analizy wydajności, oferującym deweloperom środki do optymalizacji kodu i oceny efektywności operacyjnej. Jej intuicyjny interfejs i zaawansowane funkcje czynią ją wszechstronną do różnych wymagań czasowych. Ponadto, integracja IronPDF w projektach C# rozszerza możliwości języka w manipulacji dokumentami PDF, dostarczając bezproblemowe rozwiązanie do tworzenia, modyfikowania i przetwarzania PDF-ów.

Przykład użycia Stopwatch do pomiaru czasu potrzebnego do utworzenia PDF z URL za pomocą IronPDF ilustruje współdziałanie między precyzyjnym śledzeniem czasu a zaawansowanymi bibliotekami, podkreślając znaczenie skrupulatnego pomiaru czasu w ocenie wydajności aplikacji. Razem, Stopwatch w C# i IronPDF umożliwiają deweloperom budowanie aplikacji o wysokiej wydajności z dokładnym pomiarem czasu i wszechstronnymi możliwościami obsługi PDF.

Aby uzyskać darmową licencję próbną na przetestowanie funkcji IronPDF, odwiedź Stronę informacji o licencjonowaniu IronPDF. Kompletny poradnik na temat konwersji URL na PDF można znaleźć na Poradniku IronPDF: URL na PDF.

Jacob Mellor, Dyrektor Technologiczny @ Team Iron
Dyrektor ds. technologii

Jacob Mellor jest Chief Technology Officer w Iron Software i wizjonerskim inżynierem, pionierem technologii C# PDF. Jako pierwotny deweloper głównej bazy kodowej Iron Software, kształtuje architekturę produktów firmy od jej początku, przekształcając ją wspólnie z CEO Cameron Rimington w firmę liczącą ponad 50 osób, obsługującą NASA, Teslę i światowe agencje rządowe.

...
Czytaj więcej

Powiązane artykuły

Key in blue circle

Uzyskaj natychmiast swój darmowy 30-dniowy Klucz Testowy.

Brak ograniczeń. 100% dostępności. Bez karty kredytowej.

bullet_checkedNie wymaga karty kredytowej ani tworzenia kontaBrak ograniczeń. 100% dostępności. Bez karty kredytowej.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Zarezerwuj swoje darmowe Demo na żywo
Booking Badge

Zaufane przez miliony inżynierów na całym świecie

Logotypy klientów Iron Software
Otrzymaj swoje Konsultacja Bez Zobowiązań
Wypełnij poniższy formularz lub wyślij e-mail na sales@ironsoftware.com
Twoje dane zawsze będą utrzymywane w tajemnicy.
Zaufane przez miliony inżynierów na całym świecie
Logotypy klientów Iron Software
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta