getaddrinfo()是一个阻塞函数。
如何中止getaddrinfo()调用?
例如,在关闭我的应用程序时,我想中止对此函数的现有调用。
答案 0 :(得分:0)
你不能像这样中止一个函数调用。
如果函数调用提供了中止或设置超时的方法,那么你可以,但是这个没有,大多数函数调用都没有。
但是,您可以在单独的线程中执行这些查找,现在您可以对执行这些查找的线程发出中止。
注意,在线程中进行查找并中止它并不能保证调用会立即结束,也不意味着线程会立即结束。
如果呼叫行为不正常或无法正常运行,情况尤其如此。
答案 1 :(得分:0)
getaddrinfo()
是一个无法中止的阻止功能。
在Windows 8及更高版本中,您可以改用GetAddrInfoEx()
。 Unicode版本(GetAddrInfoExW()
)支持调用者提供的超时以及重叠I / O,或者它可以为异步任务返回HANDLE
,然后可以将其传递给GetAddrInfoExCancel()
。