高手来来来!!!

大葡萄八块一斤 2012-06-26 11:39:36
我现在在做多个客户端对一个服务器的上的一个文件进行写入操作,看到好像要用到ReaderWriterLock类,求教
...全文
144 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
xmhxjjq 2012-06-27
  • 打赏
  • 举报
回复
。。这个 不太符合正常的思维吧。。
读取与写入这两个是会冲突的。 当你读取文件的时候 如果别人修改了这个文件。 系统会提示你是否继续查看更新的文件。
如果你选择是,看的就是人家修改了的。 否就是原来的。

貌似这个控制会比较悲剧。
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

asp.net是服务器程序,即使有多个客户端的话,服务器程序也支持一个,除非你使用了Web Garden.
因此只是是要线程锁就可以。也就是

private static Object lockObj = new Object();

...

lock(lockObj)
{
//写文件。
}
[/Quote]

我是想文件在读取程序中没读完的时候,另一个程序可以进行写入,我在读取程序中设置了断点,不让它读完,然后用写入程序写入,就出现如果您正处于进程当中,信息有可能丢失。最重要就是解决这个问题。。。

就是同一个文件在被服务器读取中,客户端还是可以对它进行写入,我不知道要怎么来实现!!
zincy 2012-06-26
  • 打赏
  • 举报
回复
线程同步锁定文件
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

读写的话 用file就可以了。
不行的话 就用流来做嘛。 只要权限正确 还是很好做的。
只是要注意一下。 控制不能多个客户端同时修改一个文件。
[/Quote]
是的那,读写我已经做好了,就是控制不好多个客户端同时修改一个文件,我没说清楚!!!
xmhxjjq 2012-06-26
  • 打赏
  • 举报
回复
读写的话 用file就可以了。
不行的话 就用流来做嘛。 只要权限正确 还是很好做的。
只是要注意一下。 控制不能多个客户端同时修改一个文件。
  • 打赏
  • 举报
回复
应当注意服务器上开启文件的读写权限
string tempStr = File.ReadAllText(@"C:\Documents and Settings\Administrator\桌面\Test.txt", Encoding.GetEncoding("GB2312"));//读取txt
tempStr = "修改文件";
File.WriteAllText(tempStr,@"C:\Documents and Settings\Administrator\桌面\Test.txt", Encoding.GetEncoding("GB2312"));//写入
宝_爸 2012-06-26
  • 打赏
  • 举报
回复
asp.net是服务器程序,即使有多个客户端的话,服务器程序也支持一个,除非你使用了Web Garden.
因此只是是要线程锁就可以。也就是

private static Object lockObj = new Object();

...

lock(lockObj)
{
//写文件。
}
  • 打赏
  • 举报
回复
我是想文件在读取程序中没读完的时候,另一个程序可以进行写入,我在读取程序中设置了断点,不让它读完,然后用写入程序写入,就出现如果您正处于进程当中,信息有可能丢失。最重要就是解决这个问题。。。

62,052

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧