我的程序与别人的程序(我无法控制)之间,如何同时读写文件而不冲突?

hslow 2008-07-16 11:47:04
  别人的程序对文件进行定时写操作,大概5秒写一次,写完会关闭文件。我的程序对该文件进行读操作,读完也会关闭文件。
  我想问:在我打开文件前,如何判断别人程序正在对文件进行写操作,从而推迟打开以避免冲突??难道不停尝试打开该文件直到成功为止??
  请赐教!
...全文
94 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
nextsea 2008-07-17
  • 打赏
  • 举报
回复
用文件监视器.

private static void FileWatch()
{
FileSystemWatcher watcher = new FileSystemWatcher();
watcher.Path = System.Environment.CurrentDirectory; //路径
watcher.NotifyFilter = NotifyFilters.LastWrite; //监视方式,这里选择的是最后一次写入
watcher.Filter = "要监视的文件.txt";
watcher.Changed += new FileSystemEventHandler(watcher_Changed); //触发事件
watcher.EnableRaisingEvents = true;
}

static void watcher_Changed(object sender, FileSystemEventArgs e)
{
//写入读操作

}
rangeon 2008-07-17
  • 打赏
  • 举报
回复
好像也只有 try and try
bwangel 2008-07-17
  • 打赏
  • 举报
回复
用Timer控件,每隔一段时间(比如0.5秒)在后台轮询一次文件的状态,同时还可以做别的工作.
如果文件打开对程序继续运行是必要的条件,那就只有等啰,不过应该不会等多久的.写文件只是一瞬间的事.
hslow 2008-07-17
  • 打赏
  • 举报
回复
谢谢楼上各位
发表于 2008-07-17
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 nextsea 的回复:]
用文件监视器.

private static void FileWatch()
{
FileSystemWatcher watcher = new FileSystemWatcher();
watcher.Path = System.Environment.CurrentDirectory; //路径
watcher.NotifyFilter = NotifyFilters.LastWrite; //监视方式,这里选择的是最后一次写入
watcher.Filter = "要监视的文件.txt";
watcher.Changed += new …
[/Quote]
自己保存后也会触发事件
内容概要:本文详细介绍了利用Simulink进行变压器开路试验的电路连接配置与仿真实现方法,重点在于通过仿真手段还原实际电力系统中变压器在空载条件下的电气特性,从而深入理解其工作原理与性能表现。文章作为电力系统仿真系列研究的一部分,系统阐述了从电路模型搭建、参数设定、仿真运行到结果分析的完整流程,突出展示了MATLAB/Simulink在电力设备建模与教学科研中的强大功能与应用价值。; 适合人群:具备电力系统基础知识,熟悉MATLAB/Simulink仿真环境,从事电气工程、自动化及相关领域的研发人员,以及高年级本科生和研究生。; 使用场景及目标:①掌握变压器开路试验的基本原理与Simulink仿真建模的具体步骤;②通过仿真实验深入理解空载电流、铁芯损耗及励磁特性等关键参数的物理意义;③为后续开展变压器短路试验、暂态过程分析以及其他电力设备的仿真研究奠定理论与实践基础。; 阅读建议:建议结合Simulink软件动手实践,逐步构建并调试电路模型,重点关注各元件参数的设置方法与测量模块的应用技巧,同时推荐参考文中提及的其他相关仿真案例进行拓展学习,以全面提升对电力系统仿真实践的整体认知与操作能力。

111,132

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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