【发布时间】:2012-02-14 21:28:39
【问题描述】:
当有人试图停止我的服务时,我的服务有一个线程可能正在执行WinHttpSendRequest。
WinHttpCloseHandle documentation 说:
应用程序可以通过使用
WinHttpCloseHandle关闭HINTERNET请求句柄来终止正在进行的同步或异步请求
但是,后来在同一文档中似乎与此相矛盾。它说:
应用程序永远不应
WinHttpCloseHandle调用同步请求。这可能会产生竞争条件。
我发现this blog post 似乎同意我不能打电话给WinHttpCloseHandle。
我想知道如何取消此操作以便可以正常停止我的服务?我真的不能等待WinHttpSendRequest 自然超时,因为它需要的时间太长而且我的服务没有足够快地停止。我认为 Windows 将此报告为错误,然后在关闭时强行终止该服务。
我们将不胜感激。
【问题讨论】: