Windows 尝试锁定窗口

Windows 尝试锁定窗口,windows,winapi,synchronization,locking,Windows,Winapi,Synchronization,Locking,在pthread库中,可以找到非阻塞函数: int pthread_mutex_trylock(pthread_mutex_t *mutex); 我能在Windows中找到类似的东西吗?如果您的锁使用的是关键部分,那么等效部分就是 如果您使用互斥锁进行锁定,那么等效的方法是调用passing0作为超时 如果您不熟悉Windows同步对象,不要上当受骗而选择互斥对象,因为它的名称是您在pthreads背景中最熟悉的。只要您的同步在过程中,关键部分就会更高效、更易于使用。您可以查看Boost库。他

在pthread库中,可以找到非阻塞函数:

int pthread_mutex_trylock(pthread_mutex_t *mutex);

我能在
Windows
中找到类似的东西吗?

如果您的锁使用的是关键部分,那么等效部分就是

如果您使用互斥锁进行锁定,那么等效的方法是调用passing
0
作为超时


如果您不熟悉Windows同步对象,不要上当受骗而选择互斥对象,因为它的名称是您在pthreads背景中最熟悉的。只要您的同步在过程中,关键部分就会更高效、更易于使用。

您可以查看Boost库。他们有一种叫做
这是在Windows和Unix中都能工作的一部分。

David Heffernan:我可以对不同的进程使用tryInterCriticalSection()吗?不是线程?@yeap关键部分不跨进程工作。对于跨进程锁,您需要。请注意,在调用线程已经拥有锁的情况下,pthread_mutex_trylock和tryInterCriticalSection的返回行为不同。在这两种实现中,您稍后拥有锁,但返回代码不同。有三个先决条件(没有人拥有它,我们拥有它,其他人拥有它)和两个最终状态(我们拥有它,或者我们不拥有),通过两种不同的可能行为(我们锁定它,或者我们没有锁定它)。如果另一个线程拥有关键部分,则TryInterCriticalSection返回零。pthread_mutex_trylock如果任何线程拥有该互斥锁,则返回非零。啊。