我正在使用PostgreSQL8.3,并使用libpqAPI用C++编写程序。我使用PQsendQuery()函数异步执行命令。我正在尝试实现超时处理功能。我通过在超时到期时调用PQcancel()来实现它。我使用返回100000行(持续约0.5秒)且超时为1毫秒的查询对其进行了测试,发现PQcancel()不会取消命令,而是阻塞直到服务器完成执行,然后返回一个成功的查询。我知道文档说即使取消请求成功,查询仍可能会执行。我的问题是PQcancel()阻塞了我的执行线程,这是NotAcceptable,因为我使用异步处理(使用BoostAsio框架)所以我的程序除了执行之外可能还有其他任