C_Sharp 板


LINE

如果我從DB中撈資料 撈完資料後要立即更新Lable值 之後每30秒會撈一次資料 我想要在撈完資料後立即更新Label值 我嘗試用Timer 但他只能控制時間 可是我希望是在我做完這個動作後的下一行更新Label值 而不是每30秒更新值 我也試過委派了 可是都不行 請問還有甚麼辦法嗎 謝謝 --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.109.6.129
1F:→ a926:?? Timer每30秒觸發事件後->DB撈資料->更新Label值 02/10 11:06
2F:→ a926:是你的流程有問題嗎? 02/10 11:06
我是在前端寫個timer 設定每1秒撈資料 但他第一次撈資料 他會亂跳 第一次通常會在等100秒或20或30更新一次Label 之後就會固定每一秒撈資料 可是第一次撈資料的時間會不固定 之後就會很正常 不知道為什麼會這樣 謝謝 ※ 編輯: Anthony53 來自: 140.109.6.129 (02/10 11:18)
3F:→ KanoLoa:更新label.text 之後,多一行label.update看看 02/10 13:23
4F:→ KanoLoa:你第一次撈資料的時候有確定連接到資料庫了嗎 02/10 13:24
5F:→ Litfal:是DB端有問題還是UI端有問題?所以說要把物件職責拆開阿... 02/10 13:25
6F:→ Litfal:至少把DbContext和UI分開,改用事件通知來寫。 02/10 13:27
我貼一下部分的程式碼 我確定值有存到A裡面 只是他沒有顯示到前端 我希望他可以動態顯示到前端 Button2_Click1(object sender, EventArgs e) { while{ //////撈資料到string A///// A=撈出的資料; } } protected void Timer1_Tick(object sender, EventArgs e) { Label1.Text = A; } ※ 編輯: Anthony53 來自: 140.109.6.129 (02/10 13:43)
7F:推 johnpage:timer使用有問題 02/10 15:07
請問哪邊出了問題 謝謝 ※ 編輯: Anthony53 來自: 140.109.6.129 (02/10 18:54)
8F:→ Litfal:A到底是string還是Control...怎麼會有A.Text 02/10 19:04
9F:→ Litfal:而且你這Timer也沒有重新撈資料阿 02/10 19:05
A是string 抱歉我打錯 Timer我設定每5秒會重新更新 A的值會隨著每次while做完就會更新 A我宣告在global 所以我這樣寫會產生問題嗎 還麻煩幫忙指證 謝謝! ※ 編輯: Anthony53 來自: 140.109.6.129 (02/10 19:15)
10F:→ KanoLoa:會,撈資料太慢配上你的timer邏輯可能會卡到沒更新畫面 02/11 00:25
11F:→ KanoLoa:先試試看把label那行丟在button2事件最後一行測試正確 02/11 00:26
12F:→ KanoLoa:不過這種寫法不好,別在UI事件中放可能會讀取很久的邏輯 02/11 00:26
我有測試過 值是正確的 可是沒辦法動態更新畫面 值只會在server端 可以請教一下 如果這樣的處理 該用甚麼方式比較好呢 謝謝 ※ 編輯: Anthony53 來自: 140.109.6.129 (02/11 09:17) ※ 編輯: Anthony53 來自: 140.109.6.129 (02/11 09:22)
13F:→ KanoLoa:額外開一個新的執行序去撈資料 02/11 10:14
14F:→ KanoLoa:UI更新畫面會等你事件全處理好才一次更新,自然會跳過 02/11 10:16
我把我的問題簡化 static int i=0; protected void Timer1_Tick(object sender, EventArgs e) { Label1.Text = i; } protected void Button1_Click(object sender, EventArgs e) { while (true) { i++; } } 我希望看到 按下button後 會看到 0123456789.... 可是我這樣寫 會只看到0就停住了 大概過了若干秒 才會出現0123456789... ※ 編輯: Anthony53 來自: 140.109.6.129 (02/11 12:21)
15F:→ m339606:AJAX + AJAX Timer 02/11 12:27
16F:→ KanoLoa:因為整個事件要等你迴圈跑完才更新畫面阿,當然會延遲。 02/11 13:01
17F:→ KanoLoa:創一個執行緒去額外跑回圈,會稍微好一點 02/11 13:02
那如果我這種做法 要怎麼寫會比較適合 謝謝 ※ 編輯: Anthony53 來自: 140.109.6.129 (02/11 13:59)
18F:→ KanoLoa:http://support.microsoft.com/kb/318607/zh-tw 02/11 16:53
我這限制要用web form才可以 ※ 編輯: Anthony53 來自: 140.109.6.129 (02/11 17:12) void A(){ 回圈 { 抓資料 呼叫B } } void B(){ 將資料印到client 跳到A迴圈剛剛呼叫B的地方 } 我在簡化成這樣...不知道有沒有比較清楚 謝謝 ※ 編輯: Anthony53 來自: 140.109.6.129 (02/11 17:16)
19F:→ KanoLoa:鬼打牆了,請開另一個執行續跑回圈,迴圈速度慢點即可。 02/11 18:03
20F:→ KanoLoa:你知道更新畫面的函示是哪個嗎? 02/11 18:04
21F:→ Litfal:你都用Timer了何必用迴圈哩...? 02/11 18:33
22F:→ KanoLoa:乾脆全貼吧 02/11 18:57
23F:推 largesperm:用 backgroundworker 02/11 20:28
我用的是web form Code: static int i=1; static string T=""; protected void Timer1_Tick(object sender, EventArgs e) { ////T為excel取出來的值/// Label1.Text = T; } protected void Button1_Click(object sender, EventArgs e) { while (i<1000) { ////從excel取出T值/// i++; } } 原始碼大概長這樣 每3秒會取出T值 所以我設定Timer每3秒更新一次 但現在我這樣寫 前面2分鐘被while迴圈給block Timer完全執行不了 過約兩分鐘後 就會變成Timer和while兩個輪流用 大概是這樣 謝謝 ※ 編輯: Anthony53 來自: 61.228.161.249 (02/11 21:00) ※ 編輯: Anthony53 來自: 61.228.161.249 (02/11 21:00)
24F:→ KanoLoa:捨棄你的迴圈吧,另開一個timer慢慢+++++會比較容易理解 02/11 23:20
恩 可以請教一下 如果我再開另一個timer 我該怎麼控制從excel取值得timer做完取值的動作後 在呼叫另一個timer去client印出值 然後再跳回去取值呢 這是我一直卡住的地方 謝謝 ※ 編輯: Anthony53 來自: 61.228.161.249 (02/11 23:31)
25F:→ Litfal:回去重讀Timer!上面就想推薦用System.Threading底下的Timer 02/12 00:32
Litfal:但想到要解釋我就軟了... 我早上有用 可是沒有產生效果 http://ppt.cc/lcg1 我參考msdn
26F:→ KanoLoa:用一個timer一直檢查數值是否有變動來決定要不要更新 02/12 01:01
我早上試過 就是timer一開始都搶不到cpu 雖然我設定了5秒要印出值 可是它會搶不到cpu所以就沒辦法印出值 ※ 編輯: Anthony53 來自: 140.109.6.129 (02/12 09:29)
27F:→ KanoLoa:迴圈要拿掉!然後不要一直撈資料,不然都卡在那邊 02/12 09:32







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Gossiping站內搜尋

TOP