我有一个c#程序,它随机更新一个txt文件的时间间隔,以及一个不断检查txt文件中的数据并检查它的labview程序。同时访问来自两个应用程序的文本文件
你能指导我一种方法来避免这些应用程序之间的冲突吗?
我有一个c#程序,它随机更新一个txt文件的时间间隔,以及一个不断检查txt文件中的数据并检查它的labview程序。同时访问来自两个应用程序的文本文件
你能指导我一种方法来避免这些应用程序之间的冲突吗?
一个简单的方法是使用一个名为/全局mutex
http://msdn.microsoft.com/en-us/library/f55ddskf.aspx
互斥锁的使用相同的名称被看作是所有进程相同。您可以使用它们发信号或锁定。
可能没有必要,因为一个程序是作者,另一个似乎是一个阅读器,所以两个程序都应该能够同时访问同一个文件,只要使用正确的FileShares。 – Polyfun 2012-04-17 14:50:51
LabVIEW有一个拒绝访问vi。所以你可以阻止C#在写入的同时读取。 http://zone.ni.com/reference/en-XX/help/371361E-01/glang/lock_range/ (拒绝访问 - 阅读 - 允许访问)
我会做在C#中写有一个try-catch循环,或类似的东西 - 但我没有C# - 专家。
所以一个应用程序是一个读者,另一个是作家,对吗?这两个应用程序不会同时写入文件? – 2012-04-17 14:38:47
是的。 c#写入和labview读取, – Mario 2012-04-17 14:52:27
在这种情况下,只有管理文件锁定对缓解任何冲突才是必要的。不幸的是,我不熟悉labview足以提供一个可靠的答案。我只能建议查看它提供的有关文件锁定的任何选项。 – 2012-04-17 15:01:20