作者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