有什么办法——任何办法——强制
BluetoothAuthenticateDevice( HWND hwndParent, HANDLE hRadio, BLUETOOTH_DEVICE_INFO * pbtbi, PWSTR pszPasskey, ULONG ulPasskeyLength);
和
connect(SOCKET s, const struct sockaddr FAR * name, int namelen);
函数调用超时?
我尝试在 connect() 套接字上将 SO_RCVTIMEO 和 SO_SNDTIMEO 设置为不同的值,以查看它们是否影响函数调用的长度,但无济于事 - 并且在这个问题中讨论了它们是否影响 connect() 。
connect() 上的默认超时似乎约为 5 秒,而在 AuthenticateDevice 上显然可能慢至 30-45 秒- 我已经看到 auth/connect 失败过程需要 80 秒。但是,如果它在前 1-2 秒内没有连接,它就不会连接 - 并且在这放弃之前,我们的 GUI 无法以任何方式显示对最终用户有意义的任何内容。额外的几秒钟确实很重要。
是否可以实际强制超时,或者是在线程中启动它并在花费太长时间时终止线程的唯一方法?