自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

P2PMessageQueue的外部特征與設(shè)計(jì)理念

開發(fā) 后端
本文介紹P2PMessageQueue的外部特征和設(shè)計(jì)理念。

P2PMessageQueue

確定 P2PMessageQueue 的公共接口的最佳方式是使用類。IntelliSense 將顯示每個(gè)方法和每個(gè)參數(shù)的描述性幫助信息。以下幾個(gè)段落將概述 P2PMessageQueue 接口。

圖 1 顯示該類的統(tǒng)一建模語(yǔ)言 (UML) 表示形式(以及它的兩個(gè)依賴項(xiàng):Message 類和 ReadWriteResult 枚舉)。

 顯示以下三種類型的類關(guān)系圖: P2PmessageQueue 、 Message 和 ReadWriteResult

圖 1. 顯示以下三種類型的類關(guān)系圖: P2PmessageQueue 、 Message 和 ReadWriteResult 。

如果您偏愛(ài)描述性信息較少的 Object Browser 屏幕快照(但對(duì)于某些人來(lái)說(shuō)可能更為熟悉),請(qǐng)參見(jiàn)圖 2。

 顯示這三種類型的 Visual Studio Object Browser

圖 2. 顯示這三種類型的 Visual Studio Object Browser 。

請(qǐng)注意尚未討論的項(xiàng)以及 UML 關(guān)系圖中未顯示的項(xiàng)。

添加了 DataOnQueueChanged 事件。正如您將看到的那樣,在沒(méi)有該事件的情況下,P2PMessageQueue 類仍然可用,但是當(dāng)只讀隊(duì)列非空并且只寫隊(duì)列未滿時(shí),該增強(qiáng)功能將通知客戶端。在內(nèi)部,將阻塞等待隊(duì)列句柄的線程,并在句柄收到信號(hào)時(shí)激發(fā)該事件,這就避免了錯(cuò)誤的發(fā)生。(請(qǐng)參見(jiàn)代碼以獲取詳細(xì)信息。)請(qǐng)注意,該事件不 在 UI 線程上,因此您需要使用 Control.Invoke。如果查看代碼,您還將看到在調(diào)用 Close 方法時(shí),該線程是如何完全關(guān)閉的,這正是 .NET Compact Framework 版本 1.0 的線程所需要的。.NET Compact Framework 版本 1.0 中的 Thread 類不提供 IsBackground 屬性或 Abort 方法;因此,必須確保應(yīng)用程序提供必需的代碼來(lái)完全終止該應(yīng)用程序啟動(dòng)的所有線程。如果不提供該代碼,則運(yùn)行應(yīng)用程序的進(jìn)程很可能無(wú)法終止,因?yàn)檫\(yùn)行中的 .NET Compact Framework 1.0 線程會(huì)保持該進(jìn)程運(yùn)行,即使主應(yīng)用程序線程嘗試退出也是如此。

此外,如果查看該實(shí)現(xiàn)會(huì)發(fā)現(xiàn)兩個(gè)受保護(hù)的虛擬方法。

  1. # void StartEventThread()  
  2. # Int32 GetBehaviourFlag()  

如果不需要啟動(dòng)事件線程,則可以用一個(gè)空方法重寫第一個(gè)方法。不啟動(dòng)事件線程是一個(gè)非常規(guī)方案(因?yàn)闊o(wú)法直接訂閱該事件),但是的確存在該選項(xiàng)。第二個(gè)方法返回傳入到 CreateMsgQueue 方法的標(biāo)志 (MSGQUEUOPTIONS.dwFlags) 中使用的整型參數(shù)。MSGQUEUE_ALLOW_BROKEN 的默認(rèn)設(shè)置很不錯(cuò),但是如果要更改它(例如,更改為 0 或 MSGQUEUE_NOPRECOMMIT),則重寫 GetBehaviorFlag 是最好的做法。

現(xiàn)在您應(yīng)該已經(jīng)十分了解 P2PMessageQueue類的外部特征,以及為什么以這種方式設(shè)計(jì)。

【編輯推薦】

  1. 點(diǎn)對(duì)點(diǎn)消息隊(duì)列函數(shù):用于WinCE的IPC機(jī)制
  2. ASP.NET中無(wú)Cookie會(huì)話的優(yōu)點(diǎn)與缺點(diǎn)
  3. 無(wú)Cookie會(huì)話的實(shí)現(xiàn)
  4. ASP.NET Cookie:不是問(wèn)題的問(wèn)題
  5. .NET框架中的XML:XmlSerializer的內(nèi)部原理
責(zé)任編輯:yangsai 來(lái)源: MSDN
相關(guān)推薦

2009-08-06 17:14:39

P2PMessageQ

2009-05-18 09:11:00

IPTV融合寬帶

2013-09-22 16:30:13

扁平化UI設(shè)計(jì)

2010-06-11 14:55:20

2011-03-31 16:04:18

iPhoneTwitter

2024-06-17 12:28:52

2009-07-15 15:47:12

JDBC DAO

2010-03-22 15:27:40

云計(jì)算

2011-09-05 10:18:21

Windows 8Mac OS

2010-03-02 16:34:06

Android平臺(tái)

2020-10-09 09:21:45

鴻蒙

2010-09-28 11:05:49

jQuery

2010-11-09 09:43:22

UI設(shè)計(jì)Windows Pho

2010-12-16 09:07:36

2020-11-23 14:56:36

Eureka

2011-11-23 15:07:00

社交媒體IBM營(yíng)銷

2015-05-26 11:18:06

分布式系統(tǒng)可擴(kuò)展性

2012-04-16 09:43:36

內(nèi)容優(yōu)先移動(dòng)產(chǎn)品

2010-06-11 10:19:22

systemd
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)