最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#中Sleep() 和 Wait()的區(qū)別小結(jié)

 更新時間:2024年04月15日 09:22:17   作者:那個那個魚  
Sleep()和 Wait()是兩個不同的方法,用于控制線程的執(zhí)行,本文主要介紹了C#中Sleep()和Wait()的區(qū)別小結(jié),具有一定的參考價值,感興趣的可以了解一下

Sleep() 和 Wait()  是兩個不同的方法,用于控制線程的執(zhí)行。

Sleep() 方法:

是線程類 Thread 的靜態(tài)方法,它使當(dāng)前線程暫停執(zhí)行一段時間。

Sleep() 方法接受一個參數(shù),表示線程暫停的時間長度,單位是毫秒。

在暫停期間,線程不會釋放鎖資源。當(dāng)暫停時間結(jié)束后,線程會重新進(jìn)入就緒狀態(tài),等待 CPU 調(diào)度執(zhí)行。

Sleep()  方法可以用于模擬一段時間的延遲操作。

Wait() 方法:

是 Object 類的實例方法,它使當(dāng)前線程進(jìn)入等待狀態(tài),直到其他線程調(diào)用相同對象的 Notify() 或 NotifyAll() 方法喚醒它。

Wait() 方法必須在同步代碼塊或同步方法中調(diào)用,并且會釋放鎖資源。當(dāng)線程被喚醒后,它會重新競爭鎖資源,并繼續(xù)執(zhí)行。

Wait() 方法通常與Notify() 或 NotifyAll() 方法配合使用,用于實現(xiàn)線程間的協(xié)作。(Notify:通知)

參考代碼:

using System;
using System.Collections.Generic;
using System.Text;
using System.Threading;
namespace ConsoleApplication1
{
   
    class Program
    {
        static readonly object _locker = new object();
 
        static bool _go;
        static void Main(string[] args)
        {
            new Thread(Work).Start(); //新線程會被阻塞,因為_go == false
            Console.ReadLine(); //等待用戶輸入
            lock (_locker)
            {
                _go = true; //改變阻塞條件
                Monitor.Pulse(_locker); //通知等待的隊列。
            }
            Thread.Sleep(1000);
        }
 
        static void Work()
        {
            lock (_locker)
            {
                while (!_go) //只要_go字段是false,就等待。
                    Monitor.Wait(_locker); //在等待的時候,鎖已經(jīng)被釋放了。
            }
            Console.WriteLine("被喚醒了");
        }
        
    }
}

區(qū)別:

  • Sleep() 是 Thread 線程類的方法,而 Wait() 是 Object 類的方法。
  • Seep() 會暫停當(dāng)前線程的執(zhí)行一段時間,而 Wait() 會使當(dāng)前線程進(jìn)入等待狀態(tài)。
  • Sleep() 不會釋放鎖資源,而 Wait() 會釋放鎖資源。
  • Sleep() 不需要被其他線程喚醒,而 Wait() 需要被其他線程調(diào)用相同對象的 Notify() 或 NotifyAll() 方法喚醒。

需要注意的是,Sleep() 和 Wait() 方法都可能拋出 InterruptedException 異常,需要進(jìn)行異常處理。 

到此這篇關(guān)于C#中Sleep() 和 Wait()的區(qū)別小結(jié)的文章就介紹到這了,更多相關(guān)C# Sleep() Wait()內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C#多線程之線程同步

    C#多線程之線程同步

    這篇文章介紹了C#多線程之線程同步,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • 深入理解C#中foreach遍歷的使用方法

    深入理解C#中foreach遍歷的使用方法

    在c#中通過foreach遍歷一個列表是經(jīng)常拿用的方法,使用起來也方便,下面這篇文章先給大家介紹了關(guān)于C#中foreach遍歷的使用方法,后面介紹了c#使用foreach注意的一些是,文中通過示例代碼介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。
    2017-08-08
  • LINQ基礎(chǔ)之Intersect、Except和Distinct子句

    LINQ基礎(chǔ)之Intersect、Except和Distinct子句

    這篇文章介紹了LINQ使用Intersect、Except和Distinct子句的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • AjaxControlToolkit AjaxFileUpload 顯示英文改成中文的解決方法

    AjaxControlToolkit AjaxFileUpload 顯示英文改成中文的解決方法

    AjaxControlToolkit AjaxFileUpload 顯示英文改成中文的解決方法,需要的朋友可以參考一下
    2013-03-03
  • C#檢查Windows是否安裝了某個服務(wù)的方法

    C#檢查Windows是否安裝了某個服務(wù)的方法

    這篇文章主要介紹了C#檢查Windows是否安裝了某個服務(wù)的方法,涉及C#操作windows系統(tǒng)服務(wù)的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-03-03
  • 簡單談?wù)凜#中深拷貝、淺拷貝

    簡單談?wù)凜#中深拷貝、淺拷貝

    深拷貝和淺拷貝都是對對象進(jìn)行的拷貝復(fù)制。而他們的不同就在于:一個對象中可能會有值類型的字段,也可能會有引用類型的字段。淺拷貝直接拷貝值、引用類型的指針。而深拷貝則是重新構(gòu)造字段指針?biāo)赶虻膶ο螅]有拷貝該字段的指針,或是與該字段指針指向同一塊內(nèi)存
    2015-06-06
  • C#串口通信模塊使用方法示例

    C#串口通信模塊使用方法示例

    這篇文章主要介紹了C#串口通信模塊使用方法示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • C#實現(xiàn)WinForm捕獲最小化事件的方法

    C#實現(xiàn)WinForm捕獲最小化事件的方法

    這篇文章主要介紹了C#實現(xiàn)WinForm捕獲最小化事件的方法,需要的朋友可以參考下
    2014-08-08
  • 使用C#編寫15子游戲

    使用C#編寫15子游戲

    這篇文章主要為大家詳細(xì)介紹了使用C#編寫15子游戲的具體代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • C#?Web實現(xiàn)文件上傳的示例詳解

    C#?Web實現(xiàn)文件上傳的示例詳解

    這篇文章主要為大家詳細(xì)介紹了C#?Web實現(xiàn)文件上傳的相關(guān)知識,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-11-11

最新評論

祁门县| 沁水县| 大厂| 淮阳县| 龙江县| 岫岩| 罗山县| 灯塔市| 丽水市| 轮台县| 简阳市| 宿松县| 久治县| 临沧市| 介休市| 博兴县| 交城县| 永顺县| 扎囊县| 曲周县| 新丰县| 商洛市| 镶黄旗| 永新县| 翁源县| 富宁县| 冀州市| 龙游县| 株洲市| 潼南县| 和硕县| 中宁县| 金秀| 衡南县| 米易县| 屯留县| 扶余县| 海伦市| 汶上县| 玉溪市| 垫江县|