.NET 幫助

C# 計時器(它如何對開發者運作)

發佈 2024年1月27日
分享:

在廣大的程式語言中,C# 因其多功能和強大的特性而脫穎而出,用於開發各種類型的應用程式,從桌面到網路及行動應用程式。 C# 受到開發者青睞的關鍵特點之一是其豐富的程式庫和類別集,能夠提供各種程式設計挑戰的解決方案。 其中,這些秒表類別在精確時間測量、分析、和效能分析中具有特殊的重要性。

在本文中,我們將了解如何在 C# 中使用 Stopwatch 物件來通過公有 TimeSpan Elapsed 屬性找到完成特定任務所花費的時間。 此外,我們將計時使用進行 PDF 創建的總耗時時間IronPDF 適用於 C# 開發人員.

1. 什麼是 Stopwatch 類別?

Stopwatch 類別是 C# 中 System.Diagnostics 命名空間的一部分,提供了一種簡單且高效的方法來以高精度測量經過的時間。 它是隨著 .NET Framework 推出的一項重要工具,對於開發人員來說,在跟蹤代碼段的執行時間、優化性能和分析應用程序方面非常有價值。

2. 初始化和基本使用

使用 Stopwatch 類別很簡單。 要開始使用,您首先需要創建一個新的 Stopwatch 類別實例:

using System.Diagnostics;

class Program
{
    static void Main()
    {
        Stopwatch stopwatch = new Stopwatch(); // Stopwatch object
    }
}
using System.Diagnostics;

class Program
{
    static void Main()
    {
        Stopwatch stopwatch = new Stopwatch(); // Stopwatch object
    }
}
Imports System.Diagnostics

Friend Class Program
	Shared Sub Main()
		Dim stopwatch As New Stopwatch() ' Stopwatch object
	End Sub
End Class
VB   C#

一旦創建 Stopwatch 實例,您可以開始和停止計時器以測量經過的時間:

stopwatch.Start();
Console.WriteLine("It will measure the time between start and stop");
stopwatch.Stop(); // Stop measuring elapsed time
stopwatch.Start();
Console.WriteLine("It will measure the time between start and stop");
stopwatch.Stop(); // Stop measuring elapsed time
stopwatch.Start()
Console.WriteLine("It will measure the time between start and stop")
stopwatch.Stop() ' Stop measuring elapsed time
VB   C#

可以使用 Elapsed 屬性獲取經過的時間:

TimeSpan elapsed = stopwatch.Elapsed;
Console.WriteLine($"Elapsed time: {elapsed}");
TimeSpan elapsed = stopwatch.Elapsed;
Console.WriteLine($"Elapsed time: {elapsed}");
Dim elapsed As TimeSpan = stopwatch.Elapsed
Console.WriteLine($"Elapsed time: {elapsed}")
VB   C#

輸出:

C#碼錶(開發人員如何使用):圖1 - 系統計時器輸出

3. 計時器的高級功能

Stopwatch 類別提供多種超越基本時間測量的進階功能。 讓我們來探索一些這些功能:

3.1. 重啟方法

Restart 方法是一種方便的方式,能在一個操作中停止並重置經過時間為零。 這在測量多個代碼段的執行時間而不創建新的Stopwatch實例時很有用。

Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
Console.WriteLine("The time will restart after executing the below code");
stopwatch.Restart(); 
stopwatch.Stop();
TimeSpan elapsed = stopwatch.Elapsed;
Console.WriteLine($"Total Elapsed time after Restart: {elapsed}");
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
Console.WriteLine("The time will restart after executing the below code");
stopwatch.Restart(); 
stopwatch.Stop();
TimeSpan elapsed = stopwatch.Elapsed;
Console.WriteLine($"Total Elapsed time after Restart: {elapsed}");
Dim stopwatch As New Stopwatch()
stopwatch.Start()
Console.WriteLine("The time will restart after executing the below code")
stopwatch.Restart()
stopwatch.Stop()
Dim elapsed As TimeSpan = stopwatch.Elapsed
Console.WriteLine($"Total Elapsed time after Restart: {elapsed}")
VB   C#

輸出:

C# 計時器(開發人員如何使用):圖 2 - 重啟輸出

3.2. IsHighResolution 屬性

IsHighResolution屬性指示基礎計時機制是否基於高解析度性能計數器來精確測量經過的時間。當處理可能不支持高解析度計時方法的系統時,檢查此屬性可能會很有用。

Stopwatch stopwatch = new Stopwatch();
if (Stopwatch.IsHighResolution)
{
    Console.WriteLine("High-resolution timing is supported");
}
else
{
    Console.WriteLine("Fallback to lower-resolution timing");
}
Stopwatch stopwatch = new Stopwatch();
if (Stopwatch.IsHighResolution)
{
    Console.WriteLine("High-resolution timing is supported");
}
else
{
    Console.WriteLine("Fallback to lower-resolution timing");
}
Dim stopwatch As New Stopwatch()
If System.Diagnostics.Stopwatch.IsHighResolution Then
	Console.WriteLine("High-resolution timing is supported")
Else
	Console.WriteLine("Fallback to lower-resolution timing")
End If
VB   C#

輸出:

C# 碼表(開發人員如何使用):圖 3 - 高解析度計時輸出

3.3. Frequency 屬性

Frequency 屬性返回基礎計時器每秒的計時頻率(刻度)。 此值對於將經過的滴答轉換為其他時間單位(如毫秒)非常有用。

Stopwatch stopwatch = new Stopwatch();
long frequency = Stopwatch.Frequency;
Console.WriteLine($"Timer Frequency: {frequency} ticks per second");
Stopwatch stopwatch = new Stopwatch();
long frequency = Stopwatch.Frequency;
Console.WriteLine($"Timer Frequency: {frequency} ticks per second");
Dim stopwatch As New Stopwatch()
Dim frequency As Long = System.Diagnostics.Stopwatch.Frequency
Console.WriteLine($"Timer Frequency: {frequency} ticks per second")
VB   C#

輸出:

C#秒錶(它對開發者的工作原理):圖4 - 頻率輸出

3.4. ElapsedTicks 屬性

ElapsedTicks 屬性提供直接存取原始計時器刻度數,而無需將其轉換為時間單位。 這在執行自定義計算或處理低層次定時要求時可能是有益的。

Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
// Code segment
long elapsedTicks = stopwatch.ElapsedTicks;
Console.WriteLine($"Elapsed Ticks: {elapsedTicks}");
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
// Code segment
long elapsedTicks = stopwatch.ElapsedTicks;
Console.WriteLine($"Elapsed Ticks: {elapsedTicks}");
Dim stopwatch As New Stopwatch()
stopwatch.Start()
' Code segment
Dim elapsedTicks As Long = stopwatch.ElapsedTicks
Console.WriteLine($"Elapsed Ticks: {elapsedTicks}")
VB   C#

輸出:

C# 碼表(其如何運作於開發者):圖 5 - 經過時間刻度輸出

4. IronPDF 在 C# 中的介紹

IronPDF 是一個強大的 C# 函式庫,允許開發人員輕鬆地在其 .NET 應用程式中建立、操作和處理 PDF 文件。 無論您需要從 HTML、圖像或其他格式生成 PDF,IronPDF 提供了一整套工具,可無縫整合到您的 C# 專案中。

IronPDF 提供獨特的轉換功能HTML轉PDF,保持佈局和樣式不變。 此功能非常適合從網絡內容中創建 PDF,如報告、發票或文檔。 您可以將HTML檔案、網址和HTML字串轉換為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");
    }
}
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");
    }
}
Imports IronPdf

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		Dim renderer = New ChromePdfRenderer()

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

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

		' 3. Convert URL to PDF
		Dim url = "http://ironpdf.com" ' Specify the URL
		Dim pdfFromUrl = renderer.RenderUrlAsPdf(url)
		pdfFromUrl.SaveAs("URLToPDF.pdf")
	End Sub
End Class
VB   C#

4.1. 在C#中安裝IronPDF

要在您的 C# 應用程序中開始使用 IronPDF,請遵循以下簡單步驟:

  1. NuGet 套件管理器:在 Visual Studio 中開啟您的 C# 專案,然後導航到套件管理器主控台。 執行以下命令以安裝 IronPDF:
   Install-Package IronPdf

或者,您可以使用IronPDF NuGet 套件頁面下載並安裝 "IronPdf" 套件。

  1. 在程式碼中引用:成功安裝後,請在您的C#程式碼中添加IronPDF的引用:
   using IronPdf;
   using IronPdf;
Imports IronPdf
VB   C#

現在,您已準備好在您的應用程式中利用 IronPDF 的功能。

4.2. 使用 C# Stopwatch 計時從 URL 創建 PDF

現在,讓我們演示如何使用 C# 的 Stopwatch 類來測量使用 IronPDF 從 URL 創建 PDF 所需的時間:

using System;
using System.Diagnostics;
using IronPdf;

class Program
{
    static void Main()
    {
        // Initialize IronPDF
        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 or perform other actions
        PDF.SaveAs("GeneratedPDF.pdf");
        // Display the time taken
        Console.WriteLine($"Time taken to create PDF from URL: {stopwatch.ElapsedMilliseconds} milliseconds");
    }
}
using System;
using System.Diagnostics;
using IronPdf;

class Program
{
    static void Main()
    {
        // Initialize IronPDF
        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 or perform other actions
        PDF.SaveAs("GeneratedPDF.pdf");
        // Display the time taken
        Console.WriteLine($"Time taken to create PDF from URL: {stopwatch.ElapsedMilliseconds} milliseconds");
    }
}
Imports System
Imports System.Diagnostics
Imports IronPdf

Friend Class Program
	Shared Sub Main()
		' Initialize IronPDF
		Dim Renderer As New IronPdf.HtmlToPdf()
		' Specify the URL for PDF generation
		Dim urlToConvert As String = "https://example.com"
		' Use Stopwatch to measure the time taken
		Dim stopwatch As New Stopwatch()
		stopwatch.Start()
		' Create PDF from URL
		Dim PDF As PdfDocument = Renderer.RenderUrlAsPdf(urlToConvert)
		' Stop measuring elapsed time
		stopwatch.Stop()
		' Save the generated PDF to a file or perform other actions
		PDF.SaveAs("GeneratedPDF.pdf")
		' Display the time taken
		Console.WriteLine($"Time taken to create PDF from URL: {stopwatch.ElapsedMilliseconds} milliseconds")
	End Sub
End Class
VB   C#

此範例初始化 IronPDF,使用 HtmlToPdf 類別從指定的 URL 生成 PDF,並使用 Stopwatch 測量所花費的時間。 調整 urlToConvert 變數為所需的 URL,您可以根據應用程式的需要進一步自訂 PDF 的建立過程。

輸出:

C# 碼錶(開發者如何使用):圖6 - PDF 生成計時器輸出

5. 結論

總結而言,C# 中的 Stopwatch 類是精確時間測量和效能分析的關鍵工具,為開發人員提供了優化代碼和評估操作效率的方法。 其直觀的介面和先進的功能使其能夠滿足各種計時需求的多樣性。 此外,將IronPDF整合到C#項目中擴展了該語言在PDF文檔操作方面的能力,提供了一個生成、修改和處理PDF的無縫解決方案。

使用 Stopwatch 來測量使用 IronPDF 從 URL 創建 PDF 的時間的示例展示了精確時間跟踪與高級庫之間的協同作用,強調了在評估應用程式性能時細緻計時的重要性。 C# 的 Stopwatch 和 IronPDF 共同賦予開發者構建高效能應用程式的能力,具有精確計時和多功能 PDF 處理功能。

要獲取免費試用許可證以測試IronPDF功能,請訪問IronPDF 授權資訊頁面. 完整的 URL 轉 PDF 教程可以在 找到IronPDF URL 轉換為 PDF 教程.

< 上一頁
Jquery Datatable(如何為開發者運作)
下一個 >
Swashbuckle ASP .NET Core(它如何為開發人員工作)

準備開始了嗎? 版本: 2024.12 剛剛發布

免費 NuGet 下載 總下載次數: 11,622,374 查看許可證 >