![]() |
1
19
没有更快的方法: 当远程共享不可用时,任何访问远程共享上任何内容的函数都将超时。 如果超时的原因是共享的自动断开,则这些链接可能会帮助您:
如果应用程序可以在不完成检查的情况下继续运行,那么您可以将检查放在单独的线程中,完成检查后,您可以在UI中更新您的状态。 请注意,当您尝试多线程方式时,您必须证明您的代码没有竞争条件和内存泄漏。超时和异常通常会使这项任务变得困难。 |
![]() |
2
6
C也有同样的问题: How to avoid network stalls in GetFileAttributes? 正如科迪马尼克斯所说,用线。上面的链接将向您展示如何使用C中的代理。不知道Delphi,但也许你知道如何转换代码? |
![]() |
3
5
如果测试大量目录,则应使用线程并行执行所有查询,因为对于网络共享,线程通常超时较长。 |
![]() |
4
3
这是最好的方法。您可以向Ping机器添加一些代码以确保它的存在,但这仍然会使程序失败,因为今天有许多计算机设置了软件防火墙来忽略Ping请求,并且请求的共享可能不存在。 此外,在某些计算机上,如果UNC路径在本地计算机上,并且本地计算机没有活动网卡(例如在“飞行”模式下,Wi-Fi断开的笔记本电脑),则UNC请求也将失败。 |
![]() |
5
2
我使用以下代码…
…这允许我拥有directory.exist的超时版本。我称之为…
这可以满足你的需要吗? 为了安全/合法,您需要调用“callback.endinvoke(result);”,但在异步完成之前调用它会锁定,因此这会使代码的对象失效。也许这需要在代码结束时完成-也许退出? |
![]() |
6
1
在类似于您指定的情况下,我首先向服务器添加了一个ICMP ping。如果服务器没有响应ping,我假设它已关闭。您可以自己决定在Ping上使用哪个超时,因此可以将其设置为比试图打开文件共享时内部使用的超时短得多。 |
![]() |
7
0
如果两台计算机都在同一个域中,那么在处理共享时,它将加速文件操作。 |
![]() |
8
0
这个功能对我很有用:
用途:
如果文件夹存在,函数只需要几毫秒,与不存在的文件夹相同(
|