→ totte:您是指timer1.Start(); ?? 01/04 12:47
恩 我是用VS2008 c#
想知道要怎麼在發送資料的執行緒插入一個TIMER(時間)達到定時發送的功能
剛接觸C# 想問問要怎麼寫才正確>"<
※ 編輯: chris70211 來自: 27.246.57.225 (01/04 13:25)
→ hoihkj:counter有歸零? 01/04 14:21
→ rainbow001:timer不用關閉,應該要一直計數.. 01/04 15:59
→ rainbow001:另外在你的發送端程式,加個判斷式 01/04 16:00
→ rainbow001:if(counter%2==0) {...} 01/04 16:01
→ ssccg:兩秒一次就timer1.Interval = 2000 就好 01/04 17:51
→ ssccg:要定時做的動作是寫在timer1_Tick裡 01/04 17:55
→ tsczx:如果是寫Service觸發不是寫在Tick,另外預設值Enabled有開? 01/06 18:39
由於在發送資料之前有利用usb將資料接收並運算 如果將發送資料的動作寫在Tick裡
由於我是用Tick.Emabled=true 但這樣好像不會正確的轉進Tick裡動作
因為動作需求 是利用一個button進行資料接收運算及發送
無法將發送資料的動作寫在另一個BUTTON
PS.小弟真的是新手一枚 有什麼觀念不清的地方 請大家多多見諒!!
也感謝大家的回覆 <(_ _)>
※ 編輯: chris70211 來自: 39.10.231.185 (01/07 08:39)
→ tsczx:我不是很看得懂你的問題跟需求,可以寫清楚點,試著跑debug看 01/07 22:42
剛接觸c#兩三個禮拜而已 之前主要是用matlab再寫程式
所以一些物件導向 執行緒的觀念都不是很清楚 (還在努力中)
只是有鑑於時間的緊迫性沒辦法慢慢學 只好先從看別人的code 改code著手
目前的程式是用usb接收資料 然後根據時間設定來發送資料(232)
而主要的動作都寫在接收資料的BUTTON內 所以不知道要怎麼樣將接收資料的BUTTON與
計時器的BUTTON做結合 至於將主動做寫在計時器這一點目前還在思考怎麼做
不知道能不能寫成像下面這樣:
BUTTON1~主要動作
{
接收資料
232發送命令同時進行計時&設定時間(例如三秒)
到達設定時間(三秒)
將第三秒擷取到的這筆資料再透過232發送出去
}
BUTTON2~計時
{
count++
if (count==3){關閉計時器}
}
接收資料的部分不需要跟計時器同步動作(應該沒辦法吧)
之前試著用 timer.enable=true或false 不過似乎沒辦法觸發
所以想了解應該怎麼寫才能達到我的動作需求
如果有什麼觀念錯誤 請體諒原PO還是個學不到一個月的菜鳥吧Q__Q
※ 編輯: chris70211 來自: 114.38.114.90 (01/07 23:57)
→ ssccg:timer是每過一段時間(timer.Interval)做同一件事 01/08 03:36
→ ssccg:你需要的等一段時間後做一次事情,應該用Thread.Sleep(3000) 01/08 03:39
→ ssccg:你還是先講清楚你是要定時"每"x秒發一次 01/08 03:44
→ ssccg:還是按按鈕後,發送命令→等x秒→發送命令→結束 01/08 03:44
→ hoihkj:有沒完整專案檔可提供下載? 01/08 07:40
S大 如你所說是按完按鈕後發送命令->等x秒->接收usb 資料->發送下一個命令
保持這個迴圈 秒數設定的部分會放在陣列 如果是這樣的動作的話是否用
Thread Sleep即可?
H大我是抓網路上的generic_hid_cs這是檔名 可是我忘記在哪抓得了>"<
如果你有需要 http://www.lvr.com/usbcode.htm 這個對你應該有用
※ 編輯: chris70211 來自: 39.12.23.249 (01/08 08:42)
→ hoihkj:XD HID 我只是想解你的timer問題 不是很確定 若只是要收到 01/08 09:03
→ hoihkj:資料後delay3S送232寫在同個button1應該可以達到阿 01/08 09:04
→ hoihkj:btn1>收usb>delay3s>送232 這樣嗎? 01/08 09:10
→ hoihkj:要loop就給for迴圈或timer內call button1 01/08 09:16
→ hoihkj:for UI可能會卡住 用timer也許比較理想 01/08 09:16
→ tsczx:等X秒後再做動作,是用Sleep,想要按下去"每"兩秒抓一次用 01/08 11:16
→ tsczx:Timer,而且我有點困惑,你要先等待兩秒,再去抓,那Timer設長一 01/08 11:23
→ tsczx:比較好,Sleep兩秒>>每兩秒執行Timer,會只有第一次Sleep兩秒 01/08 11:25