jpf*_*ius 15 delphi networking delphi-2009
我用
DirectoryExists (const PathName : String);
Run Code Online (Sandbox Code Playgroud)
检查是否可以从计算机访问目录.但是如果目录不存在且路径名是网络路径,即
\\computer1\Data
Run Code Online (Sandbox Code Playgroud)
该方法需要很长时间才能返回.
必须有一种更快的方法来确定无法访问网络文件夹.或者我可以配置DirectoryExists在内部使用的一些超时参数(我查看了源代码,但它只是委托给kernel32中定义的GetFileAttributes)?
有任何想法吗?
Jer*_*ers 19
没有更快的方法:
当该共享不可用时,访问远程共享上任何内容的任何函数都将超时.
如果您的超时原因是自动断开共享,那么这些链接可能会帮助您:
如果应用程序可以在没有完成检查的情况下继续,那么您可以将检查放在单独的线程中,并且在完成检查后,您可以在UI中更新您的状态.
请注意,当您尝试多线程方式时,您必须反驳代码,不受竞争条件和内存泄漏的影响.超时与异常相结合通常会使这成为一项艰巨的任务.
C#也存在同样的问题: 如何避免GetFileAttributes中的网络停顿?
正如codymanix所说,使用线程.上面的链接将向您展示如何使用C#中的代理进行操作.不知道Delphi,但也许你知道如何转换代码?
| 归档时间: |
|
| 查看次数: |
10949 次 |
| 最近记录: |