none
关于gui界面和多线程的问题,如何实时在gui界面上反映后台线程的工作情况 RRS feed

  • 问题

  • 假如程序功能是从网上抓取一百个网页,我想用gui界面来控制什么时候开始抓取,也就是有个开始按钮,还有一个大的textbox,用来显示状态,每抓取完一个网页后在gui的界面上有一个提示消息,显示出来目前还剩多少网页没有抓取

    我目前想到的方法是使用事件机制,也就是每抓取完一个网页触发一个事件,在gui界面的类中定义事件处理程序,但是如果开始抓取后发现执行这个事件处理程序的也是后台线程,并且会报错,因为后台线程无法修改其他线程创建的页面,那么想请问各位高手,这种情况下,应该怎么做才能让他们进行通信呢,给个思路就可以

    2011年2月19日 14:04

答案

  • 您好,需要在界面的线程上调用委托。

    具体的例子,请参考:http://msdn.microsoft.com/zh-cn/library/zyzhdc6b%28v=VS.100%29.aspx

    我很早以前写的例子:http://social.microsoft.com/Forums/zh-CN/2212/thread/b55060e1-6ae7-4f54-91a8-459faf64ab2a

    请注意Invoke方法的使用。

    • 已建议为答案 eryang 2011年2月23日 2:16
    • 已标记为答案 eryang 2011年3月2日 3:35
    2011年2月19日 14:26