我要做一个转换视频的程序
每次都要一下转3-4个
每个都启动一个线程
每个线程大概运行10-20分钟
这种情况用线程池可以吗?
还有我用线程池的时候用的是manualresetevent
我的线程不进入转换的函数里是怎么回事?我这里有3个类,converter是转换的类,还有一个converterManager是调用converter的,还有一个businessManager是启动线程的类,线程里用运行一下converterManager,converterManager调用converter转换完了reset那个event
可是每次都到converter之后运行到那个函数没干活就直接过去了,怎么回事啊?
调试的时候每步都没问题,谁知道用线程池要注意什么啊?
晚上把代码贴上

解决方案 »

  1.   

    你是说用默认的CLR线程池?10-20分钟的任务最好别用那个线程池,因为其他后台任务也需要那个线程池,属于公共资源,不过用线程池也可以,这不是你的主要问题。你的主要问题是你的converter没有convert,你在单线程程序你用那个converter是正常的吗?
      

  2.   

    你要确认你的应用环境,如果客户端是单CPU单核,开4个线程会比开1个线程慢,如果是双CPU或单CPU双核,开2个线程会比开1个线程快。根据现在主流电脑的配置,不建议你开4个线程,1个或2个是最有效的,当然能够根据客户端的硬件配置自动优化那就是最好的了。另外你这里不需要手动使用线程池。