private void DoWork(object state) //DoWork为线程池中的一个线程,其他线程都是DoWork
{
......
for()//循环
{
....
if(XMLsHelp.GetExist(path,value)) //XMLsHelp.GetExist判断文件名为path的文件是否存在value值。其他线程中的path可能跟这个path相同。
continue;
.....
XMLsHelp.Insert(path,value); 、、、向文件名为path的文件中添加value值
.....
}
.....
}
当多线程同时读写一个文件时报错
这个问题怎么解决?
要尽量的不影响程序的速度
{
......
for()//循环
{
....
if(XMLsHelp.GetExist(path,value)) //XMLsHelp.GetExist判断文件名为path的文件是否存在value值。其他线程中的path可能跟这个path相同。
continue;
.....
XMLsHelp.Insert(path,value); 、、、向文件名为path的文件中添加value值
.....
}
.....
}
当多线程同时读写一个文件时报错
这个问题怎么解决?
要尽量的不影响程序的速度
解决方案 »
- 多人用户同时使用,经常会出现重复插入数据 的问题
- help!!!给40分,这样插入数据错在哪?为什么插不入数据库?
- 如何在.NET 中使用 windows media play 控件?
- 小妹求教,如何实现本地文件移动到某地的问题!
- CrystalReport 怎么加入图片?----100分求助
- web中如何做在线统计人数?
- 请问为什么合成图片后,保存为gif后很不清晰?
- Host Wcf服务和默认网站冲突。
- datagrid在98下面第一次运行始终有错误打个红叉叉,选择继续后再进入就很顺利,2000,xp没有
- 各位大侠,现在有没有详细介绍如何用c#制作winForm程序的书,越详细越好。
- 2个日期时间差的问题,很不理解
- rdlc 报表中指定多数据源时,第二个数据源只会显示首行
{
XMLsHelp.Insert(path,value);
}
仍然会报错把XMLsHelp.Insert和XMLsHelp.GetExist都锁了,速度会下降很多。
Alldone.Reset();
Alldone.WaitOne();
//Alldone.WaitAll();
Alldone.Set()
当前只允许一个线程操作锁定的代码块。同时读文件是可以的,同时写就不行了。