作者jimmy701010 (jimmy701010)
看板Visual_Basic
標題[.NET] backgroundworker
時間Tue Mar 9 15:13:07 2010
請輸入專案類型(網站專案或者應用程式專案):vb.net
目前要做一個自動排程上傳程式
主要是跑一個無限迴圈不斷的掃描資料庫中每一筆資料的時間
如果時間到了就上傳那筆資料記錄的資料夾中的檔案
因為程式內還有新增刪除資料庫的資料的功能
所以掃描的功能我就用了Backgroundworer來做背景作業
目前到這邊都沒問題,但是到了要寫LOG的時候就出現大問題了
因為我希望在掃描的時候,LOG可以寫出連線的相關資訊
例如連線失敗可以寫文字到listbox上,讓使用者觀看
目前卡在
1.無法把文字放到控制項
我是有用BackgroundWorker1.ReportProgress引發BackgroundWorker1_ProgressChanged
這個來做,不過還是失敗
希望有人可以幫忙一下 感謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 60.248.71.115
1F:推 horngsh:會不會是woker thread不能改UI THREAD的問題? 03/09 15:44
2F:推 Marty:用Delegate吧...BackGroudWorker沒有書上寫的那麼好用.. 03/09 16:35
3F:→ nobody1:推樓上 03/09 18:33
4F:推 Sany:你ReportProgress怎麼用,code讓我們看一下 03/11 15:11
5F:→ jimmy701010:後來我沒有用 背景作業中無法控制lISTBOX 03/11 16:36
6F:→ jimmy701010:我是另外呼叫自己寫的函式來寫進去 03/11 16:37
7F:→ jimmy701010:ListBox.CheckForIllegalCrossThreadCalls = False 03/11 16:39
8F:→ jimmy701010:還要加上上面這行才可以 跨thread控制 目前都ok 03/11 16:40
9F:推 Marty:樓上那行指令是可以啦...但是比較像掩耳盜鈴的做法....XD 03/13 08:34
10F:→ horngsh:Marty是對的, 要用正規的多執行緒的作法才是正道 03/14 17:35