FileStream stream1 = new FileStream("abc.k",FileMode.Create,FileAccess.Write, FileShare.ReadWrite);
FileStream stream2= new FileStream("abc.k",FileMode.Open,FileAccess.ReadWrite);
//////////////////////////////////////////////////////////////
stream1主要就是不停的写数据到abc.k去。
stream2主要就是重abc.k读取数据。
因为stream1是不停的在把数据写入abc.k,而stream2读取数据是根据一些判断来决定是否要从abc.k取一些数据出来。但是我发现当stream2开始取数据的时候,stream1就会停下来等待stream2取完后,stream1才继续写数据。我应该怎么做才对???????

解决方案 »

  1.   

    FileStream stream2= new FileStream("abc.k",FileMode.Open,FileAccess.ReadWrite);
    改为
    FileStream stream2= new FileStream("abc.k",FileMode.Open,FileAccess.ReadWrite,FileShare.Read);
      

  2.   

    改成FileStream stream2= new FileStream("abc.k",FileMode.Open,FileAccess.ReadWrite,FileShare.Read);
    报错,abc.k正由另一进程使用,因此该进程无法访问该文件
      

  3.   

    呵呵………………
    楼上的错了。
    FileStream stream1 = new FileStream("abc.k",FileMode.Create,FileAccess.Write, FileShare.Read);
    FileStream stream2= new FileStream("abc.k",FileMode.Open,FileAccess.Read,FileShare.ReadWrite);stream1共享读。stream2只读模式,共享读写。
      

  4.   

    using (FileStream stream1 = new FileStream("abc.k",FileMode.Create,FileAccess.Write, FileShare.ReadWrite))
    {
      .....
    }
    这样应该可以解决进程冲突
      

  5.   

    LS的??呵呵………………
    steeam2出错,你using stream1干什么??
      

  6.   

    没仔细看``看有人说进程有问题``就using个咯`` @_@
      

  7.   

    不好意思`刚看完了``@_@``确实要用using``2个stream都加个using``读写应该就不会出错了
      

  8.   

    频繁整 stream1.close()了嘛。。用uning不划算
      

  9.   

    我的上帝,我不是都说了,我stream1必须得不停的写数据,怎么可能把他关闭了呢。stream1是绝对不容许停止的。
      

  10.   

    FileStream stream1 = new FileStream("abc.k",FileMode.Create,FileAccess.Write, FileShare.Read);
    FileStream stream2= new FileStream("abc.k",FileMode.Open,FileAccess.Read,FileShare.ReadWrite);stream1共享读。stream2只读模式,共享读写。