您的位置:程序门 -> .net技术 -> c#



请问不同线程可否打开一个文件?


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


请问不同线程可否打开一个文件?[已结贴,结贴人:occupant]
发表于:2007-08-22 01:31:37 楼主
我用一个线程写文件,一个线程读文件,是否可行?

现在我在一个线程里面写:
filestream   fswrite   =   new   filestream(filepath,   filemode.create,   fileaccess.write);
binarywriter   filewriter   =   new   binarywriter(fswrite);
……
filewriter.write(readbuffer,   0,   readbuffer.length);
……

在另一个线程里面写
filestream   fs   =   new   filestream(filepath,   filemode.open,   fileaccess.read);
binaryreader   filereader   =   new   binaryreader(fs);
……
filereader.read(readbuffer,   0,   bufferlength);
……

运行后提示:

未处理的“system.io.ioexception”类型的异常出现在   mscorlib.dll   中。

其他信息:   文件“d:\0708220130215540.dxc”正由另一进程使用,因此该进程无法访问该文件。
发表于:2007-08-22 02:30:401楼 得分:20
fileshare.readwrite
发表于:2007-08-22 13:36:572楼 得分:0
老大,同一文件不能同时进行读写操作
发表于:2007-08-22 14:05:333楼 得分:0
楼上说的对.

除非你第一个操作完然后关闭,第二个再操作.
发表于:2007-08-22 14:29:094楼 得分:0
有个类可以控制两个线程同步的   就是一个线程执行完成再调用另一个线程  
另外对于文件的操作有几种占用方式   :1、打开即占用   2、写或读时占用
发表于:2007-08-22 15:29:075楼 得分:0
帮顶~
发表于:2007-08-23 16:36:266楼 得分:0
基本上filestream构造函数里加上一楼的参数fileshare.readwrite应该可以的。虽然后来的程序运行起来一会行一会不行,但是我现在已决定不采用这种方式了。


快速检索

最新资讯
热门点击