请问Mutex能实现跨进程锁吗?

niss 2015-08-06 05:19:49
现在我有两个程序要同时访问Access数据库,发现偶尔出现数据库已打开这种错误,应该是两个进程同时访问Access造成的(一个读,另一个是读写),现在必须要在两个程序中加锁,普通的lock只对同一进程的多个线程有效,无法对两个进程进行加锁,请问各位有什么办法?
...全文
454 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
niss 2015-08-07
  • 打赏
  • 举报
回复
自己解决了,写了个跨进程锁,确保同一时间只有一个线程能读写数据库
  • 打赏
  • 举报
回复
关于如何多用户使用 Jet 引擎访问 mdb 数据库文件,你自己搜一下。这种15年前就已经被微软公布文档宣布用Sql Server Comapct 替代了的东西,现在不值得特别介绍了。如果你还是喜欢这种东西,应该自己找15年前的资料,特别是vb6下的资料,你会看到要多用户、甚至多计算机共享访问 mdb 文件,应该保证存有 mdb 文件的磁盘驱动支持特性。 Jet 数据库的问题,在于它实在是太脆弱。当有一个应用程序进程奔溃的时候,无一例外地,mdb 文件就被破坏了。这时候如果你停止所有的业务运营,然后使用 Access 程序或者Jet for vb 的驱动去修复mdb 文件,总是会丢失最近的10几条数据才可能让文件能用。特别地,当你在局域网内有多台计算机去远程共享磁盘方式去访问 mdb 文件时,并且假设这些计算机跟保存 mdb 文件的计算机之间的网络并不是很好时,这种事件发生的几率会很高。
  • 打赏
  • 举报
回复
Jet引擎本来就支持多用户共享(share)mdb文件、并且支持事务的使用,这跟什么 Mutex没有半点关系。
ganguozai 2015-08-06
  • 打赏
  • 举报
回复
在MSDN上把案例调试一遍试试看!

110,533

社区成员

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

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

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