public string deal(str)
{
foreach (string str3 in str.Split(new char[] { '\n' }))
{ Monitor.Enter(str3);
string strLine = str3;
if (strLine.IndexOf(",") < 0)
{
continue;
} if (this.FindData(ref strLine))
{
string[] strArray2 = strLine.Split(new char[] { ',' }); //这里需要不需要加锁?
object obj = this.sortlist[strArray[1]];
if (obj != null)
{
this.sortlist[strArray[1]]= strArray[2];
}
else
{
this.sortlist.add(strArray[1],strArry[2]);
}
}
}
}如何多线程做呢?多线程做有没有优势?我的设想是每一个线程处理一个STR3,this.sortlist需要不需要加锁,Sortlist已异步化。
{
foreach (string str3 in str.Split(new char[] { '\n' }))
{ Monitor.Enter(str3);
string strLine = str3;
if (strLine.IndexOf(",") < 0)
{
continue;
} if (this.FindData(ref strLine))
{
string[] strArray2 = strLine.Split(new char[] { ',' }); //这里需要不需要加锁?
object obj = this.sortlist[strArray[1]];
if (obj != null)
{
this.sortlist[strArray[1]]= strArray[2];
}
else
{
this.sortlist.add(strArray[1],strArry[2]);
}
}
}
}如何多线程做呢?多线程做有没有优势?我的设想是每一个线程处理一个STR3,this.sortlist需要不需要加锁,Sortlist已异步化。
线程的缺点
线程自然也有缺点,以下列出了一些:
·如果有大量的线程,会影响性能,因为操作系统需要在他们之间切换;
·更多的线程需要更多的内存空间
·线程会给程序带来更多的bug,因此要小心使用
·线程的中止需要考虑其对程序运行的影响
·通常块模型数据是在多个线程间共享的,需要一个合适的锁系统替换掉数据共享
2010里的System.Threading.Task命名空间下有并行处理类。