以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]服务器和客户端同步配置文件  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=161352)

--  作者:chnfo
--  发布时间:2021/3/14 20:14:00
--  [求助]服务器和客户端同步配置文件
局域网共享访问目录X$

现在服务端定时(例如每5分钟)往X$\\XYZ.txt中写入服务器时间date.now
然后客户端读取共享目录下的服务器时间文件X$\\XYZ.txt

在多用户访问且极端情况下,可能会出现服务端用WriteAllText正在写共享文件的时候,客户端正在访问这个文件。
有时候客户端出现一个提示:这个文件正在被进程使用。

我现在是用本机同时作为服务端和客户端,这个是服务端写和客户端读同时并发导致的吗?
如果是这个原因,怎么避免?

--  作者:有点蓝
--  发布时间:2021/3/14 21:14:00
--  
试试:https://docs.microsoft.com/zh-cn/dotnet/api/system.threading.readerwriterlockslim?view=net-5.0

https://blog.csdn.net/nodeman/article/details/88118723

服务端写
Dim LogWriteLock As new System.Threading.ReaderWriterLockSlim()
LogWriteLock.EnterWriteLock()
try
    \'写入文件的代码
finally
    LogWriteLock.ExitWriteLock()
End try

客户端读
Dim LogWriteLock As new System.Threading.ReaderWriterLockSlim()
LogWriteLock.EnterReadLock()
try
    \'读取文件的代码
finally
    LogWriteLock.ExitReadLock()
End try