線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2391
推到 Plurk!
推到 Facebook!

自製Queue Object

 
G01
高階會員


發表:249
回覆:379
積分:215
註冊:2002-05-21

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-09-04 16:28:27 IP:210.200.xxx.xxx 未訂閱
這個程式我在撰寫WinSocket程式時產生的實作(測試)程式,目的是在於當 Socket Server以及 Socket Client皆使用thread接收及處理大量資料時 如何才能讓Client端有效地得知Server端已完成Client端的需求,並且 進行下一階段Command Message的傳送. 嘗試了許多方法都失敗之後,決定使用自訂Queue的方式來達到以上的需求 自訂QueueOBJ的特性考量如下: 1.Codeing的便利性 該物件必須可以使用New()及DisPose()進行Constructor及Destructor-->簡單化 並且於執行完畢後QueueOBJ可以自動銷毀,由下一個QueueOBJ進行工作 ;並降低系統資源使用上的負荷(因為要配合TThread使用,預設有大量且頻繁的Socket傳輸/回應)!! 2.QueueOBJ與程式其他物件的配合性 承上述,要配合TThread使用;所以必須由負責某項工作的Thread來決定該QueueOBJ 是否已完成該項作業,避免不必要的Socket傳輸壅塞!! 3.程式維護的一致性 QueueOBJ具備與Delphi VCL類似的Event觸發方式,不用再以其他方式來進行QueueOBJ的實作!! 並且將所有的QueueOBJ的Event都導向到一個Procedure,僅以EventSender屬性進行區別!! (哦~~~~ 媽媽咪呀!!)
附加檔案:36902_MyQueueOBJC.zip
G01
高階會員


發表:249
回覆:379
積分:215
註冊:2002-05-21

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-09-04 17:08:42 IP:210.200.xxx.xxx 未訂閱
進一步說明: 使用此OBJECT,你可以大方地將Socket設定為asynchronous模式 也就是說,由自製的QueueOBJ控制著整個Socket資料的傳送 而真正的好處是--->可以知道資料傳送確實完成的時間 而不用使用Delay.....去waiting!!
領航天使
站長


發表:12216
回覆:4186
積分:4084
註冊:2001-07-25

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-09-05 21:11:38 IP:211.76.xxx.xxx 未訂閱
相關文章 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=36958 ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~
系統時間:2024-04-18 16:59:27
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!