[.NET] backgroundworker

看板Visual_Basic作者 (jimmy701010)時間16年前 (2010/03/09 15:13), 編輯推噓4(406)
留言10則, 5人參與, 最新討論串1/1
請輸入專案類型(網站專案或者應用程式專案):vb.net 目前要做一個自動排程上傳程式 主要是跑一個無限迴圈不斷的掃描資料庫中每一筆資料的時間 如果時間到了就上傳那筆資料記錄的資料夾中的檔案 因為程式內還有新增刪除資料庫的資料的功能 所以掃描的功能我就用了Backgroundworer來做背景作業 目前到這邊都沒問題,但是到了要寫LOG的時候就出現大問題了 因為我希望在掃描的時候,LOG可以寫出連線的相關資訊 例如連線失敗可以寫文字到listbox上,讓使用者觀看 目前卡在 1.無法把文字放到控制項 我是有用BackgroundWorker1.ReportProgress引發BackgroundWorker1_ProgressChanged 這個來做,不過還是失敗 希望有人可以幫忙一下 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.248.71.115

03/09 15:44, , 1F
會不會是woker thread不能改UI THREAD的問題?
03/09 15:44, 1F

03/09 16:35, , 2F
用Delegate吧...BackGroudWorker沒有書上寫的那麼好用..
03/09 16:35, 2F

03/09 18:33, , 3F
推樓上
03/09 18:33, 3F

03/11 15:11, , 4F
你ReportProgress怎麼用,code讓我們看一下
03/11 15:11, 4F

03/11 16:36, , 5F
後來我沒有用 背景作業中無法控制lISTBOX
03/11 16:36, 5F

03/11 16:37, , 6F
我是另外呼叫自己寫的函式來寫進去
03/11 16:37, 6F

03/11 16:39, , 7F
ListBox.CheckForIllegalCrossThreadCalls = False
03/11 16:39, 7F

03/11 16:40, , 8F
還要加上上面這行才可以 跨thread控制 目前都ok
03/11 16:40, 8F

03/13 08:34, , 9F
樓上那行指令是可以啦...但是比較像掩耳盜鈴的做法....XD
03/13 08:34, 9F

03/14 17:35, , 10F
Marty是對的, 要用正規的多執行緒的作法才是正道
03/14 17:35, 10F
文章代碼(AID): #1BbVK5Ak (Visual_Basic)