2010-02-18 177 views
0

是否有可能为用户C++ dll做后台工作的应用程序使用互斥体对象,并使用c#来显示它。 Bot这些使用一个共同的资源,即分贝。所以可以使用Mutex来锁定这个资源。在我的数据库C++将插入到数据库和C#将读取它。在c#exe和C++ dll之间使用互斥体

回答

1

您应该锁定分贝,而不要使用互斥,因为有其他应用程序可能会访问相同的资源。即使你知道它只是你当前访问资源的dll和应用程序,有人可能会编写一个应用程序来访问相同的资源并破坏该方案。

看看SQLite PRAGMA(locking_mode和synchronous)。

1

你必须使用此构造函数在C#中System.Threading命名空间:

公共互斥( 布尔initiallyOwned, 字符串名称, OUT BOOL createdNew )

的C部分在其他答案中已有介绍 - 因此不需要Interop/PInvoke。