您好,登錄后才能下訂單哦!
來(lái)自森大科技官方博客
http://www.cnsendblog.com/index.php/?p=349
GPS平臺(tái)、網(wǎng)站建設(shè)、軟件開(kāi)發(fā)、系統(tǒng)運(yùn)維,找森大網(wǎng)絡(luò)科技!
http://cnsendnet.taobao.com
代碼在同級(jí)目錄中有,這里就不貼出來(lái)了。
圖1
從下圖中可以看出,實(shí)例化ManualResetEvent對(duì)象時(shí),傳的是true,則將初始狀態(tài)設(shè)置為終止。程序首次運(yùn)行,兩個(gè)線程都在持續(xù)運(yùn)行,如圖3所示
圖2
圖3
輸入reset命令,執(zhí)行Reset方法,將事件狀態(tài)設(shè)置為非終止?fàn)顟B(tài),導(dǎo)致線程阻止。所以兩個(gè)線程方法都停止運(yùn)行了
輸入set命令,執(zhí)行Set方法,將事件狀態(tài)設(shè)置為終止?fàn)顟B(tài),允許一個(gè)或多個(gè)等待線程繼續(xù),所以2個(gè)線程又都開(kāi)始運(yùn)行了。
![]
結(jié)論:WaitOne方法在這里很關(guān)鍵,阻止當(dāng)前線程,直到當(dāng)前 System.Threading.WaitHandle 收到信號(hào)。ManualResetEvent對(duì)象可以作為一個(gè)全局變量,多個(gè)線程可以訪問(wèn)它,如果ManualResetEvent對(duì)象實(shí)例化傳的是true時(shí),或者M(jìn)anualResetEvent對(duì)象被執(zhí)行Set方法時(shí),寫(xiě)了.WaitOne的線程方法將繼續(xù)執(zhí)行;如果ManualResetEvent對(duì)象被執(zhí)行Reset方法時(shí),寫(xiě)了.WaitOne的線程方法將停止執(zhí)行,一直等待,知道被執(zhí)行了Set方法為止。
驗(yàn)證:如下圖所示,注釋了WaitOne方法,即使執(zhí)行了Reset方法,由于沒(méi)有WaitOne的控制,這兩個(gè)線程一樣的在運(yùn)行。
來(lái)自森大科技官方博客
http://www.cnsendblog.com/index.php/?p=349
GPS平臺(tái)、網(wǎng)站建設(shè)、軟件開(kāi)發(fā)、系統(tǒng)運(yùn)維,找森大網(wǎng)絡(luò)科技!
http://cnsendnet.taobao.com
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。