我创建了一个Windows服务,用于在服务器的硬盘(安装服务的位置)和映射到服务器的网络驱动器之间移动文件。在创建解决方案时,我遇到的问题之一是网络问题。
在设置检查网络驱动器是否存在的超时时间时,如何检查?如果超时,我会捕获异常并在X分钟后重试,并将项目留在队列中。
谢谢!
在设置检查网络驱动器是否存在的超时时间时,如何检查?如果超时,我会捕获异常并在X分钟后重试,并将项目留在队列中。
谢谢!
public static T SafeLimex<T>(Func<T> F, int Timeout, out bool Completed)
{
var iar = F.BeginInvoke(null, new object());
if (iar.AsyncWaitHandle.WaitOne(Timeout))
{
Completed = true;
return F.EndInvoke(iar);
}
F.EndInvoke(iar);
Completed = false;
return default(T);
}
System.IO
方法就可以解决问题。因此,在这种情况下,你只需要使用以下代码即可:if (Directory.Exists("Z:\\MyNetworkFolder"))
{
// Gogogo
}
else
{
Thread.Sleep(MyTimeout);
}