看板 C_Sharp 關於我們 聯絡資訊
各位好,小弟有個跨thread的問題想請教, 請各位先進幫忙,問題如下: 我有一個共用變數: int i 在UI thread new出兩個新的thread A, B A thread對共用變數i做++ 當A thread完成i++之後 B馬上將i的結果秀在label上 目前嘗試了lock以及autoevent,但這兩種方法都只會將 i最後的結果顯示出來。 請問有什麼辦法能夠即時顯示i的每次變化呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 112.105.148.177
optimist9266:我認為是A的工作內容在B啟動前已經做完了 06/19 00:48
optimist9266:習慣上你應該是A.Start();B.Start(); 06/19 00:48
ghostx2:正常只是狀態顯示 用Timer去偵測狀態即可 幹嘛Real-Time 06/19 01:18
ghostx2:如果要及時 在A thread直接做Invoke(()=>{刷新內容})即可 06/19 01:19
jenesis:為什麼不直接用A刷新Label就好了? 07/21 17:38
singledream:Hi, 不知道您解決問題了沒?請善用Backgroundworker的 10/20 19:44
singledream:ProgressChanged,Task也有。更建議使用Task。但你的 10/20 19:45
singledream:問題我不建議拆開兩個thread去做。因為可以在DoWork 10/20 19:46
singledream:(假設用backgroundworker)內做累加i的動作,做完要 10/20 19:47
singledream:用Report去對label做update就好。 10/20 19:47