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

關於執行緒的使用...

答題得分者是:happosai
Sendre
一般會員


發表:8
回覆:21
積分:5
註冊:2007-03-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-04-02 14:44:32 IP:218.170.xxx.xxx 訂閱
我想用PC傳送資料給8051後
等8051收到後回傳了確認值
PC在接著傳送下筆資料給8051





可是這部分我用執行緒想了老半天還是不知道該怎麼改...
請各位高手教導~
因為我真的蠻急的...

[C Error] Unit4.h(18): E2089 Identifier 'Z_ReadData' cannot have a type qualifier
這是每次偵錯的提示
可是我不清楚要去哪邊更改...
happosai
高階會員


發表:93
回覆:228
積分:109
註冊:2002-09-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-04-03 10:24:22 IP:220.134.xxx.xxx 訂閱
有那麼難嗎?

PC 8051
WriteFile() ----->
ReadFile() <---- return ACK

記得要設定 PC 端 Rx timeout,不然 ReadFile() 會立刻 return 傳回 FALSE

不需要用什麼元件啦,直接呼叫 API 就好了
Sendre
一般會員


發表:8
回覆:21
積分:5
註冊:2007-03-17

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-04-04 09:24:22 IP:218.170.xxx.xxx 訂閱
記得要設定 PC 端 Rx timeout,不然 ReadFile() 會立刻 return 傳回 FALSE

不需要用什麼元件啦,直接呼叫 API 就好了

Rx timeout==>這個要怎麼設定呀??
因為我的pc端會接上很多台8051
我目前已經把執行緒搞定了
可是當第一台資料送給1號8051後
在送第二台資料給2號時卻收到1號的資料= =
這該怎麼解決呀= =...


happosai
高階會員


發表:93
回覆:228
積分:109
註冊:2002-09-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-04-04 10:15:25 IP:220.134.xxx.xxx 訂閱
你不是接線弄錯要不就是寫入的handle弄錯,自己先debug一下吧
Sendre
一般會員


發表:8
回覆:21
積分:5
註冊:2007-03-17

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-04-04 10:19:14 IP:218.170.xxx.xxx 訂閱
因為我是用公司的模擬板應該不會有錯
會不會是執行緒使用完之後要讓它SLEEP一下呀?
happosai
高階會員


發表:93
回覆:228
積分:109
註冊:2002-09-15

發送簡訊給我
#6 引用回覆 回覆 發表時間:2007-04-04 15:14:23 IP:220.134.xxx.xxx 訂閱
當你在作I/O動作時OS會切換執行續,用Sleep()是強制切換
Sendre
一般會員


發表:8
回覆:21
積分:5
註冊:2007-03-17

發送簡訊給我
#7 引用回覆 回覆 發表時間:2007-04-04 15:17:30 IP:218.170.xxx.xxx 訂閱
當你在作I/O動作時OS會切換執行續,用Sleep()是強制切換
=>

原來是這樣啊...
所以當我要讓一號執行緒休息就用用Sleep()囉
用Sleep()後一號執行緒是不是又暫時沒有動作
可以換二號執行緒工作呀?

happosai
高階會員


發表:93
回覆:228
積分:109
註冊:2002-09-15

發送簡訊給我
#8 引用回覆 回覆 發表時間:2007-04-04 18:39:13 IP:220.134.xxx.xxx 訂閱
不一定,但是一定會切到別的thread,也有可能是main thread
Sendre
一般會員


發表:8
回覆:21
積分:5
註冊:2007-03-17

發送簡訊給我
#9 引用回覆 回覆 發表時間:2007-04-04 18:42:39 IP:218.170.xxx.xxx 訂閱
不一定,但是一定會切到別的thread,也有可能是main thread
=>
那如果有指定的話會不會就可以解決這樣的問題
就是指定切掉1 號的執行緒
happosai
高階會員


發表:93
回覆:228
積分:109
註冊:2002-09-15

發送簡訊給我
#10 引用回覆 回覆 發表時間:2007-04-06 00:01:29 IP:122.124.xxx.xxx 訂閱
可以考慮用 event object 去觸發其他 thread 叫他停止,但是強制
結束對方任何一本書都會告訴你這是危險的作法

我建議還是從頭好好 review 一下你的程式與線路,光是這樣講
很難找出問題所在
系統時間:2024-05-20 22:48:10
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!