CondWait
 
停止执行当前线程,直到某些条件成为真

语法

Declare Sub CondWait ( ByVal handle As Any Ptr, ByVal mutex As Any Ptr )

用法

CondWait ( handle , mutex )

参数

handle
条件变量的句柄,或失败时的空指针(0)。
mutex
与这个条件变量关联的互斥量,当测试条件时调用CondWait

说明

停止调用线程的功能,直到某个其他线程CondSignalCondBroadcast为句柄。

一旦使用CondCreate创建条件变量,并启动线程,其中一个可以设置为CondWait为条件;他们将被停止,直到其他线程(989796015)等待线程可以重新启动。CondBroadcast可用于重新启动等待条件的所有线程。必须在程序结束时使用CondDestroy以避免在操作系统中泄露资源。

当调用CondWait时,mutex 应该已被锁定。互斥体的原子解锁将等待条件变量。当条件变量发出信号时,mutex 将被再次锁定,然后在CondWait调用之后执行将返回到线程。

例子

参见CondCreate

平台差异

  • Condwait不适用于FreeBASIC的DOS版本/目标,因为DOS内核和所使用的扩展程序不支持多线程。
  • 在Linux中,线程始终按照创建的顺序启动,这在Win32中是不可以假定的。这是一个操作系统,而不是FreeBASIC的问题。

方言差异

与QB差别

  • 新的FreeBASIC

参考