采用Service多线程模式实现从一个文件夹下取出所有播放文件压缩后放入另一个文件夹的功能,帮忙指点,本人从没做过多线程的东西啊!急~~~

解决方案 »

  1.   

    这个应该不是很难吧,首先要用到IO,得到文件的相对路径,用IO里面的类就OK,至于多线程可以分别用IO压缩!个人建议
      

  2.   

    要做的步骤大概如下:
    1.我的单个wave文件压缩功能已经实现
    2.现在在做怎样实现windows service的单线程型式
    3.考虑多线程型式
    我做出了一个windows service,现在不知道怎么在onstart()方法中添加我的winform代码,也就是我wave文件压缩功能代码,怎么调用winform窗体?
      

  3.   

    主线程取文件夹里的所有文件,每个线程的函数把单个文件名作为参数做转换。
    Thread t = new Thread(new ParameterizedThreadStart(convertfile));
    t.Start(myArray[i]);
        private void convertfile(object  file)
        {
            string filename = (string)file;
            //do something
        }
      

  4.   

    又有问题了,要让服务一直执行,过一段时间检测一次,比如5秒,发现有新的文件就执行压缩,还得在start加东西吧,我回去再研究一下
      

  5.   

    从工具栏里拖一个timer,在tick事件里写检查文件夹是否有新文件的代码
      

  6.   

    我最后用的是在convertfile()转换文件方法里写一个while(true){}死循环,来不停的执行扫描,压缩功能,只是在一个执行完一个while过程后,让线程sleep一段时间,而且我把convertfile()方法参数去掉了,不在线程开始的时候给它传参数,用的是Thread t = new Thread(new ThreadStart(convertfile));t.Start();
    我在网上查过,都说用timer控件,有时间试试写一下