2个线程可以同时Append同一个文本文件吗? 可以的话,FileAccess怎么设置? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 使用之前最好lock一下,用过之后尽快释放。 应该不可以同时APPEND,用LOCK锁定吧。 System.IO.FileStream fs=new FileStream(文件名,System.IO.FileMode.OpenOrCreate,System.IO.FileAccess.Write,System.IO.FileShare.Write,8,true); FileStream sw = new FileStream(filename, System.IO.FileMode.OpenOrCreate,System.IO.FileAccess.ReadWrite, System.IO.FileShare.ReadWrite) 你的想法实在太恐怖了。这样回出大问题的!建议你放弃该想法,还是用LOCK锁定吧 to:fd7893(看着办吧)还好啊我就是这样用多线程下载,并且多线程写入同一个文件的,用的时候new一下,用完释放没见什么问题 TO jingtao_zhou(小熊)"用的时候new一下,用完释放"就是写在一个方法里? 所有线程调用这个方法去Append?释放是不是close? 我是先打开文件指定要写入的位置然后在writeclose()就释放没有Append方法,但在构造FileStream类的时候,可以指明public FileStream( string path, FileMode mode, FileAccess access, FileShare share, int bufferSize, bool useAsync);path 当前 FileStream 对象将封装的文件的相对路径或绝对路径。 mode FileMode 常数,确定如何打开或创建文件。 access FileAccess 常数,它确定 FileStream 对象访问文件的方式。这将获取 FileStream 对象的 CanRead 和 CanWrite 属性。如果 path 指定磁盘文件,则 CanSeek 为 true。 share FileShare 常数,确定文件如何由进程共享。 bufferSize 所需的缓冲区大小(以字节为单位)。对于 0 和 8 之间的 bufferSize 值,缓冲区的实际大小设置为 8 字节。 useAsync 指定使用异步 I/O 还是同步 I/O。可以去查看msdn 在使用之前先实例化FileStream,并设置FileShare值。然后将FileStream对象传入各个线程处理对象,并在各个线程处理对象中分别确定FileStream的Position.要确保各个线程处理对象的Position必须唯一,且处理长度不要与其它线程重复。 C# 讀寫IC 卡 ArcGIS Engine怎么画图? c# 操作excle报表 按要求输出的问题 WinForm的数据库问题 C# 计算器%的实现 我想问一下四级菜单怎么加呢谢谢 连接SQLSERVER问题,提示SQL不存在或访问被拒绝 datagridview的某列编辑时是触发哪个事件winform下 关于学习泛型 c#连oracle,grid控件数据不显示 C#中如何获得多个menuitem事件的名称,并传递给另外的窗体 请教一个datatable的问题~谢谢
使用之前最好lock一下,用过之后尽快释放。
建议你放弃该想法,还是用LOCK锁定吧
还好啊
我就是这样用多线程下载,并且多线程写入同一个文件的,用的时候new一下,用完释放
没见什么问题
就是写在一个方法里? 所有线程调用这个方法去Append?释放是不是close?
指定要写入的位置
然后在write
close()就释放
没有Append方法,但在构造FileStream类的时候,可以指明
public FileStream(
string path,
FileMode mode,
FileAccess access,
FileShare share,
int bufferSize,
bool useAsync
);
path
当前 FileStream 对象将封装的文件的相对路径或绝对路径。
mode
FileMode 常数,确定如何打开或创建文件。
access
FileAccess 常数,它确定 FileStream 对象访问文件的方式。这将获取 FileStream 对象的 CanRead 和 CanWrite 属性。如果 path 指定磁盘文件,则 CanSeek 为 true。
share
FileShare 常数,确定文件如何由进程共享。
bufferSize
所需的缓冲区大小(以字节为单位)。对于 0 和 8 之间的 bufferSize 值,缓冲区的实际大小设置为 8 字节。
useAsync
指定使用异步 I/O 还是同步 I/O。可以去查看msdn