Re: [問題] 用TIMER定時發送資料
這是你回覆的需求
BUTTON1~主要動作
{
接收資料
232發送命令同時進行計時&設定時間(例如三秒)
到達設定時間(三秒)
將第三秒擷取到的這筆資料再透過232發送出去
}
BUTTON2~計時
{
count++
if (count==3){關閉計時器}
}
1.按Btn1,接收資料void()
2.C#會等跑完接收void()完才跑發送232的發送命令等待3秒void()
所以這時候你已經收到資料了,但是時間不一定,看機器速度,資料庫,跟網路
,因此"第三秒"擷取到的這筆資料這個功能可以不用
因為接收資料如果花五秒,會等五秒後才跑下一個動作
你可以做(簡略寫)
Btn_Click()
{
if( GetData() ) //花5秒抓資料,這裡就會跑5秒
{
SendData(); //花3秒送資料,這裡就會跑3秒
}
}
bool GetData()
{
if(接收資料沒錯)//例如DataTable.Rows.Count>0
return true;
else
return false;
}
void SendData()
{
發送資料;
}
當然這是按Btn才會執行,看字面你是想要讓他自動執行,所以把
GetData 跟 SendData 放在 Timer裡面,
Btn_Click()
{
Timer.Enabled=true;
}
Btn2_Click()
{
Timer.Enabled=false;
}
Timer_Tick
{
if( GetData() )
{
SendData();
}
}
Btn按下去是去啟動Timer
設定Btn2去停止自動抓送資料
至於Timer間隔多久執行一次,你可以看一下你的資料,如果很少,Timer.Interval
可以設定短一點(2000=2秒),但是你還要傳送資料,建議你可以設久一點
以上互相交流
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.70.109.229
※ 編輯: tsczx 來自: 203.70.109.229 (01/08 11:54)
推
01/08 13:52, , 1F
01/08 13:52, 1F
→
01/08 13:53, , 2F
01/08 13:53, 2F
→
01/08 13:53, , 3F
01/08 13:53, 3F
→
01/08 14:54, , 4F
01/08 14:54, 4F
→
01/08 14:55, , 5F
01/08 14:55, 5F
推
01/08 21:48, , 6F
01/08 21:48, 6F
※ 編輯: tsczx 來自: 114.27.125.68 (01/11 16:47)
討論串 (同標題文章)
完整討論串 (本文為第 2 之 2 篇):
0
22
C_Sharp 近期熱門文章
PTT數位生活區 即時熱門文章