當前位置:編程學習大全網 - 源碼下載 - C# 掛起和恢復線程

C# 掛起和恢復線程

我也不明白這個東西,找到點資料,看妳用得著嗎?

重要說明:

在 .NET Framework 2.0 版中, Thread..::.Suspend 和 Thread..::.Resume 方法已標記為過時,並將從未來版本中移除。

還可以通過調用 Thread..::.Suspend 來暫停線程。當線程針對自身調用 Thread..::.Suspend 時,調用將會阻止,直到另壹個線程繼續該線程。當壹個線程針對另壹個線程調用 Thread..::.Suspend 時,調用是非組阻止調用,這會導致另壹線程暫停。無論調用了多少次 Thread..::.Resume ,調用 Thread..::.Suspend 均會使另壹個線程脫離掛起狀態,並導致該線程繼續執行。例如,如果將 Thread..::.Suspend 連續調用五次,然後調用 Thread..::.Resume ,則該線程將在調用 Thread..::.Resume 後立即繼續執行。

與 Thread..::.Sleep 不同, Thread..::.Suspend 不會導致線程立即停止執行。公***語言運行庫必須壹直等待,直到線程到達安全點之後它才可以將該線程掛起。如果線程尚未啟動或已經停止,則它將不能掛起。有關安全點的詳細信息,請參見 Thread.Suspend、垃圾回收和安全點 。

重要說明:

Thread..::.Suspend 和 Thread..::.Resume 方法通常並不是對所有應用程序都有用,並且不應將其與同步機制混淆。由於 Thread..::.Suspend 和 Thread..::.Resume 不依賴於受控制線程的協作,因此,它們極具侵犯性並且會導致嚴重的應用程序問題,如死鎖(例如,如果掛起的線程占有另壹個線程需要的資源,就會發生這種情況)。

某些應用程序確實需要控制線程的優先級以提高性能。為了做到這壹點,應該使用 Priority 屬性而不是 Thread..::.Suspend 。

  • 上一篇:Android控件RecyclerView和ListView的異同
  • 下一篇:2020-10-11:壹條sql語句執行時間過長,應該如何優化?從哪些方面進行優化?
  • copyright 2024編程學習大全網