日期:2014-05-17  浏览次数:20968 次

关于C#中的线程
小弟自学……如果可笑之处,多多包涵。

写了一个简单的程序,想用10个线程处理,功能:将List<sting []>中的string []存到10个文本中,List<string []>的长度是10,里面有10个string [],现在问题来了……

1、我现在是new了10个线程出来,写了10个方法(因为要保存的文件名不一样,所以写了10个方法),一个线程调用一个方法,请问有更简单的写法吗?下面是我的方法。我是把List<string []>给手动拆了传参。。。
static void Start0(object i)
        {
            string[] s = (string[])i;
            StreamWriter sw = new StreamWriter("d:\\test\\txt0.txt");
            for (int j = 0; j < s.Length; j++)
            {
                    sw.Write(s[j]);
            }
            sw.Close();
        }

2、想用一个进度条来监视有没有全部完成,这里需要调用代理什么也都用了,但是进度条不好使,估计是写错了,因为我只用了一个if来判断的……

------解决方案--------------------
用一个线程来处理,因为你的是IO操作,不是计算限制的操作。多了只会浪费内存,CPU和时间。

你去看看APM编程模型和StreamWriter.BeginWrite方法的使用。