紧急求助 c#流不支持并发IO读写问题
2个回答
展开全部
肯定不支持!
这跟C#没关系,而是所有的系统、程序,都不会支持并发的IO的,
设想一下,如果两个人改同一份EXCEL表格,那么如何保存呢?一个人保存之后,另外一个人读取到的内容又是什么呢? 这都是非常严重的问题。
所以如果是以FileMode.OpenCreate模式打开的文件,肯定是不允许并发的,
如果希望并发读取的话,可以代码层来把Stream复制到内存中,然后关闭源文件的流,让下一个进程去读取。
如果要修改,那么必须去另存为, 另存的时候可以让用户选择是否覆盖源文件, 但是这跟TFS 这种团队协作软件是不同的,因为Stream是以最后一个保存的人为标准的,其他人的操作其实都是无效的。
这样整体下来,用户的感觉是在并发,其实是针对一个流的多次复制后,各自操作的结果。
个人非常不建议这么做。。。。
这跟C#没关系,而是所有的系统、程序,都不会支持并发的IO的,
设想一下,如果两个人改同一份EXCEL表格,那么如何保存呢?一个人保存之后,另外一个人读取到的内容又是什么呢? 这都是非常严重的问题。
所以如果是以FileMode.OpenCreate模式打开的文件,肯定是不允许并发的,
如果希望并发读取的话,可以代码层来把Stream复制到内存中,然后关闭源文件的流,让下一个进程去读取。
如果要修改,那么必须去另存为, 另存的时候可以让用户选择是否覆盖源文件, 但是这跟TFS 这种团队协作软件是不同的,因为Stream是以最后一个保存的人为标准的,其他人的操作其实都是无效的。
这样整体下来,用户的感觉是在并发,其实是针对一个流的多次复制后,各自操作的结果。
个人非常不建议这么做。。。。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
给我们看你怎么写的啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询