全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1475
推到 Plurk!
推到 Facebook!

請問TClientSocket&CreateFileMapping&Thread之間資料處理的問題?

尚未結案
tim_sune
一般會員


發表:4
回覆:1
積分:1
註冊:2003-01-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-04-30 15:40:19 IP:211.78.xxx.xxx 未訂閱
各位前輩您好: 請問TClientSocket接收的資料,呼叫CreateFileMapping()寫入memory時,我想產生一個Thread可以一直讀取此Memory做處理? Thread如果不用Timer定時處理外,如何即時得知Memory有新的資料需處理?請多多指教,謝謝!!
jackalan
初階會員


發表:20
回覆:88
積分:36
註冊:2003-11-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-04-30 17:56:26 IP:218.2.xxx.xxx 未訂閱
换个方式考虑,一直监视内存信息不如通过TClientSocket在收到服务器的信息时会触发ClientRead的事件来处理,收到数据后用个标志通知Thread就可以了。 另外不太明白您说的“Thread如果不用Timer定時處理外”,用了Thread为什么还要用Timer?
tim_sune
一般會員


發表:4
回覆:1
積分:1
註冊:2003-01-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-05-02 00:31:17 IP:218.169.xxx.xxx 未訂閱
jackalan您好: 謝謝您的指導,但是再請問您說的「用个标志通知Thread就可以了。」該如何做到呢?因為我比較沒有寫過Thread的經驗。另外我想在Thread裡用Timer是因為我以為Thread要一直檢查share memory是否有新的data進來,應該很耗系統資源,所以就想說用Timer定時去check memory,這樣的做法會比較好,但又覺得不夠即時性,所以才很苦惱,才想請較前輩們給予指導。 如果能有Sample,當然更棒了,敬請不吝指導,謝謝!!
jackalan
初階會員


發表:20
回覆:88
積分:36
註冊:2003-11-08

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-07-18 13:29:59 IP:221.226.xxx.xxx 未訂閱
呵呵,不好意思,好久没上了。 其实TIMER也是个线程,所以谈不上耗系统资源,其实即便是同时开100个线程,CPU的占用率也就1%左右。 关于SAMPLE呵呵,不知道你程序想做什么,所以你还是先说说吧,呵呵! 用Thread检查标志很简单,设一个全局变量,如:BOOL类型,当有新的资料到时将其设定为TRUE,Thread对这个变量做检查,为TRUE时进行处理,然后处理完将其设定为FALSE。当然我只是具个例子,TClientSocket本身接收就是多线程的,所以注意处理,最好用其它类型不要用BOOL免得第一笔还未处理完,第二笔来时就没法通知了。 ======================= 无情剑客多情剑
系統時間:2024-05-18 22:01:43
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!