C# 如果发生超时,请重复for循环

C# 如果发生超时,请重复for循环,c#,loops,watin,C#,Loops,Watin,我正在使用Watin从网站自动下载文件。如果Web服务器在特定时间内没有响应,则在某个时间点会发生超时错误。我想知道超时发生的索引是什么,以及该索引是否重复for循环 例如: for (int index = 0; index < ros.Count; index++) { //download document FileDownloadHandler down = new FileDownloadHandler(dir+nume+"_"+ro+".pdf"); u

我正在使用Watin从网站自动下载文件。如果Web服务器在特定时间内没有响应,则在某个时间点会发生超时错误。我想知道超时发生的索引是什么,以及该索引是否重复for循环

例如:

for (int index = 0; index < ros.Count; index++)
{
    //download document
    FileDownloadHandler down = new FileDownloadHandler(dir+nume+"_"+ro+".pdf");
    using (new UseDialogOnce(browser.DialogWatcher, down))
    {
        down.WaitUntilFileDownloadDialogIsHandled(100);
        down.WaitUntilDownloadCompleted(100);
    }
}
for(int index=0;index

当超时发生时,我想知道for循环中的索引是什么,我想重试下载处理程序。可能吗?

超时很可能引发异常。您应该弄清楚到底抛出了哪个异常,然后可以在循环中捕获它:

for (int index = 0; index < ros.Count; index++) 
{ 
    //download document
    try 
    { 
        FileDownloadHandler down = new FileDownloadHandler(dir+nume+"_"+ro+".pdf"); 
        using (new UseDialogOnce(browser.DialogWatcher, down)) 
        { 
            down.WaitUntilFileDownloadDialogIsHandled(100); 
            down.WaitUntilDownloadCompleted(100); 
        }
    } 
    catch(Exception e) 
    {
        // TODO: Handle timeout. The value of index will tell you when the timeout occured
    } 
} 
for(int index=0;index
如果它正在显示异常,则可以将try-and-catch块和catch-exception放在发生异常时可以看到的位置