windows - 如何避免 GetFileAttributes 中的网络停顿?

标签 windows networking

我正在测试远程共享(在 Windows 服务器上)中是否存在文件。用于测试的底层函数是 WinAPI 的 GetFileAttributes,发生的情况是该函数在各种情况下可能会花费过多的时间(几十秒),例如当目标服务器离线时,当有权利或 DNS 问题等。

但是,在我的特殊情况下,它始终是 LAN 访问,因此如果文件不能在不到 1 秒内访问,那么通常再等几十秒就无法访问...

是否有不会停止的 GetFileAttributes 替代方法? (除了在线程中调用它并在超时后终止线程,这似乎带来了自己的问题包)

最佳答案

问题真的不是 GetFileAttributes。它通常只调用一次底层文件系统驱动程序。是那个 IO 停滞了。

不过,解决方案可能很简单。调用CancelSynchronousIo()一秒钟后(这显然需要第二个线程,因为您的第一个线程卡在 GetFileAttributes 中)。

关于windows - 如何避免 GetFileAttributes 中的网络停顿?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1142080/

相关文章:

linux - 给定端口号,如何使用 netstat 查找连接详细信息?

android - 本地 iOS-Android zeroconf ad-hoc 网络

python - 使用 python 更改文件权限的 Chmod 问题

c++ - 如何用C++读取Windows默认网关IP地址

c# - 以编程方式列出 Windows 10 中所有受支持的语言环境

java - 如何读取 1GB 文件的最后一行 - java

具有多个接口(interface)的系统上的 Ruby 套接字绑定(bind)

c# - 如何模拟 LAN 带宽下降

windows - 如何从字体文件中获取字体名称?

c - 有什么方法可以使用批处理脚本杀死Windows Task Manager?