【发布时间】:2013-03-09 17:33:19
【问题描述】:
我正在使用 win32event Python 模块与在另一个程序(基于 C#)中创建的 Mutex 进行交互
我的代码打开一个互斥体,然后等待它:
hWait = win32event.OpenMutex(win32con.MUTEX_ALL_ACCESS, False, "mutexname")
win32event.WaitForSingleObject(hWait, 20000)
此代码的问题在于,如果尚未创建互斥锁,它会失败(例如,如果 python 程序在 C# 程序创建互斥锁之前尝试打开它)。
在创建互斥体之前如何进行阻塞?是否有任何 Python 或库方法允许这样做?
【问题讨论】:
-
您可以使用 CreateMutex API,它能够“打开”一个现有的互斥锁,或者如果它不存在就真正创建它。但这可能需要 C# 方面的合作,如果您先创建它,它可能在“创建”时没有所有权。另一种解决方案:在 mutext 不存在时循环(在循环中使用 Sleep)
-
当前 pywin32 win32con 模块没有名为 MUTEX_ALL_ACCESS 的常量
-
需要使用win32事件机制吗?