如题所示。在我的mainform中,用到了多个backgroundworker来定期操作大量文件。这些background worker是在formload的时候初始化好,还是在定期执行的后台函数里再初始化好呢?假如在数据定时处理方法中再初始化这些backgroundworker,每一次用大量backgroundworker处理完数据后,有没有必要把这些backgroundworker对象清理掉呢?如果在formload中初始化全局的backgroundworker,在多次长期处理数据后,这些backgroundworker会不会累了,变慢了呢?多谢。-------------------------------------------------------------------------------------以上是华丽的分割线。再提个问题。假如我有多个目录(200+)的大量数据要处理,我是应该用200个backgroundworker处理,还是每次用5个backgroundworker来处理的策略更合理呢?
多谢

解决方案 »

  1.   

    使用 .net 中那么多种强大的异步多线程处理的语法形式,确实是看不出需要 backgroundworker 组件的必要了。
      

  2.   

    纯粹后台操作用不上BackgroundWorker吧,除非想要和界面实时交互。
      

  3.   


    哦,是的,发现了,不是这个backgroundworker的问题,是server2008种,cdo组件挖出来的一个坑哎即便是放在后台线程也会,直接会导致 appcrash无语
      

  4.   

    winform程序,请先看好前提这个时候和界面有交互的
      

  5.   

    winform程序,请先看好前提这个时候和界面有交互的
    task 异步 同步,无关winform,都可以使用的。
      

  6.   

    task 异步 同步,无关winform,都可以使用的。
      

  7.   

    你可以学习 c# 现在的 async/await 异步方法编程语法,写异步代码比较简单,几秒的事情(当然前提是你清楚异步操作),不用组件。组件麻烦。
      

  8.   

    个人理解backgroundworker本质还是用户线程
    如果线程的操作很快结束,不是长期运行,
    推荐使用线程池
    如果线程与UI需要交互,使用匿名委托