Mono替代名为Mutex

ygo*_*goe 6 c# linux mono synchronization

在Windows/.NET上,可以使用命名的Mutex来同步多个进程.不幸的是,Mono并不完全支持Linux.他们的发行说明说Linux不支持这种Windows功能,并且模拟它是不可靠的.无论如何,最好避免建议的黑客攻击.

那么建议的替代品是什么?我需要让我的程序安全地同时运行,只需要将其中的一小部分与其他实例同步.

该应用程序最终需要部署在带有Mono 2.10的Ubuntu Linux上,但是对于测试,如果它也可以在带有.NET 4的Windows 7上运行,那将非常受欢迎.

Max*_*xim 5

更新:
尝试查看http://aakinshin.net/en/blog/dotnet/namedmutex-on-mono/

OLD:
Mono不支持任何Windows原生IPC.所以你没有例如命名管道或互斥锁.

但是要在同一进程中同步线程,您可以显式使用Monitor类(它也用于锁定).

要简单地通知另一个进程,您可以尝试使用Unix域套接字.
检查UnixEndPoint类.您可以为其指定名称的一个好处(例如,对于命名的信号量).

您也可以尝试使用自己的文件模拟互斥锁.尝试获取对特定自己文件的独占访问权限.虽然您有访问权限 - 但您处于关键部分.

  • 现在情况非常不同 - http://aakinshin.net/zh/blog/dotnet/namedmutex-on-mono/ (2认同)