首頁 >後端開發 >C++ >如何在 C# 中實現通用逾時以防止程式碼掛起?

如何在 C# 中實現通用逾時以防止程式碼掛起?

DDD
DDD原創
2025-01-23 11:57:10242瀏覽

How to Implement Generic Timeouts in C# to Prevent Code from Hanging?

在C#中實現通用超時機制

與不可靠程式碼互動時,實作一種通用機制來執行具有定義逾時的特定程式碼區塊至關重要。這種通用方法可以應用於各種場景,並增強程式碼的健全性。

主要挑戰之一在於,如果超時,如何終止長時間運行的任務。為了克服這個問題,我們採用了一個包裝的委託。這個委託將執行緒傳遞給一個局部變量,從而允許在必要時中止線程。

提供的C#程式碼包含一個靜態方法CallWithTimeout,該方法在指定的逾時時間內執行指定的操作。如果逾時,該方法將中止正在運行的執行緒並拋出TimeoutException例外。

範例用法:

<code class="language-csharp">class Program
{
    static void Main(string[] args)
    {
        // 五秒钟的方法,超时时间为六秒钟
        CallWithTimeout(FiveSecondMethod, 6000); 
    }

    static void FiveSecondMethod()
    {
        Thread.Sleep(5000);
    }
}</code>

這段程式碼示範如何在C#中實現通用逾時機制,讓開發人員優雅地處理耗時任務並防止程式碼在執行過程中卡死。

以上是如何在 C# 中實現通用逾時以防止程式碼掛起?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn