監(jiān)控遠(yuǎn)程異步消息傳送和隔離是避免共享狀態(tài)以及實現(xiàn)并行操作分離的方法。此時并行操作將傳遞數(shù)據(jù)的副本,而不是修改內(nèi)存中的某個公共地方以及互相調(diào)用方法。同時并行操作也可以以不同的速度運(yùn)行。隊列消息是減少進(jìn)度不一致的常用方法。
通常使用參與者/帶來模式來描述已消息為中心的并行編程解決方案。而生產(chǎn)者/消費(fèi)者以及流水線操作都包括發(fā)送數(shù)據(jù)以及確定發(fā)送哪些監(jiān)控遠(yuǎn)程數(shù)據(jù)的過程。在每一種模式中,解決方案都包括兩個或更多通過交換監(jiān)控遠(yuǎn)程數(shù)據(jù)來協(xié)調(diào)其活動的組件。因此如果不能有效地實現(xiàn)數(shù)據(jù)交換功能,那么它將成為代碼開發(fā)過程中的一個瓶頸。
寫入和刪除都會修改底層數(shù)據(jù) ,同時還需要一些共享訪問的方法(比如鎖定)。其中可能某些代碼片段的處理時間比其他代碼要長。隊列對于厚繭靈活且高效的算法是必不可少的(但是它會暫停生產(chǎn)者,或者在等待數(shù)據(jù)期間允許消費(fèi)者做其他事情)。
構(gòu)建Blocking Collection類的目的就是處理所有這些情況。
Blocking Collection支持并提供了多種使用和添加監(jiān)控遠(yuǎn)程數(shù)據(jù)的方法。相比于常規(guī)的foreach迭代,建議使用 GetConsumingEnumerable方法。顧名思義,該方法中的每次迭代都會從集合中刪除一個條目。如果在一個TimeSpan中數(shù)據(jù)不存在,TryTake將啟用超時選項。此時Take阻塞直到數(shù)據(jù)存在為止。但當(dāng)調(diào)用CompleteAdding方法后又嘗試刪除操作時Take會產(chǎn)生一個異常。
在代碼中添加有限讓了會阻塞生產(chǎn)進(jìn)程,并導(dǎo)致消費(fèi)進(jìn)程趕上來。前面的代碼綁定到5條消息。消費(fèi)方添加了輕微的處理延遲。請注意生產(chǎn)者無法繼續(xù)下去直到Blocking Collection中留有空間。事實上,TryAdd會反復(fù)嘗試添加操作直到成功為止。
默認(rèn)情況下,BlockingCollection的內(nèi)部使用Concurrent Queue,同時任何支持IProducerConsumerCollection接口的類也被Blocking Collection所支持。
通過Concurrent stack將Blocking Collection中的排序變?yōu)長IFO(后進(jìn)先出)。BlockingCollection已進(jìn)行了性能優(yōu)化,同時其內(nèi)部使用了輕量級的鎖定機(jī)制。

聊天記錄實時監(jiān)控

 

★關(guān)于WorkWin公司電腦監(jiān)控軟件★

WorkWin的使命是打造Work用途的Windows 電腦系統(tǒng),有效規(guī)范員工上網(wǎng)行為,讓老板知道員工每天在做什么(監(jiān)控包括屏幕、上網(wǎng)在內(nèi)的一舉一動),限制員工不能做什么(禁止網(wǎng)購、游戲、優(yōu)盤等)。

WorkWin基于純軟件設(shè)計,非常容易使用,無需添加或改動任何硬件,使用一臺管理機(jī)監(jiān)控全部員工機(jī)電腦。歷經(jīng)南京網(wǎng)亞十余年精心打造,此時此刻每天都有成千上萬企業(yè)電腦正在運(yùn)行WorkWin,選擇WorkWin選擇“贏”。

WorkWin介紹

WorkWin監(jiān)控首頁 短視頻講解 下載免費(fèi)試用版

版權(quán)所有,南京網(wǎng)亞計算機(jī)有限公司 。本文鏈接地址: 使用監(jiān)控遠(yuǎn)程異步消息類傳輸