Console.WriteLine(strFile + " START:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
            SegWord coc = new SegWord();
            StreamReader sr = new StreamReader(new FileStream(Util.GetDataPath("seg\\" + strFile), FileMode.Open), Encoding.Default);
            StreamWriter sw = new StreamWriter(new FileStream(Util.GetDataPath("seg\\" + strFile + ".seg"), FileMode.Create), Encoding.Default);
            string strLine = "";
            int i = 1;
            while ((strLine = sr.ReadLine()) != null)
            {
                strLine = strLine.Trim();
                if ((i % iLineNum == 2) || (i % iLineNum == 3) || (i % iLineNum == 4))
                {
                    sw.WriteLine(coc.Seg(strLine, bFilter, iType, segType) );
                }
                else
                {
                    sw.WriteLine(strLine);
                }
                i++;
            }
            sr.Close();
            sw.Close();
=====================================================================================================
只调用seg函数处理 2 3 4 行,
处理小规模文本,一小时只能处理700兆左右,想改成多线程的,对这个不熟,网上搜了搜。
有几个疑问:我想开多线程,一个线程读文件,开十个线程切分文本,但是需要定义对象SegWord coc = new SegWord(),利用coc.Seg()函数来切分文本,我这十个线程都调用这个函数的话,是不是这个对象我要定义十个?还是可以对象复用,但是那样进程间互相切换,是不是开销很大?因为之前没有接触过多线程,现在很茫然,读取线程将文件传输给切分线程,十个线程切分文件中不同的行,这十个线程之间的临界资源会不会冲突?是不是再开一个线程写文件?
大家有什么好的思路没?