我有这样的代码
Task.Run(() =>
{
ParallelOptions options = new ParallelOptions();
options.MaxDegreeOfParallelism = (int)(1);
Parallel.ForEach(addresses, options, (address) =>
{
var nr1 = address.Split(new string[] { ":" }, StringSplitOptions.None)[0];
var nr2 = address.Split(new string[] { ":" }, StringSplitOptions.None)[1];
DoAddressStuff(nr1 , nr2 );
});
});
public void DoAddressStuff(string stuff, string stuff2) {
try {} catch (WebDriverTimeoutException e) {
// Do Something
}
}
基本上,我正在努力实现的目标。如果网站加载时间太长,它会捕获WebDriverTimeoutException
,我不确定我怎么能retry
我已经完成了对该函数的调用。
我正在努力实现的一个例子:
如果它调用DoAddressStuff("data", "data")
并且网站将无法加载,则它会在并行中再次调用该函数。可以这样做吗?
答案 0 :(得分:0)
更新方法DoAddressStuff
以返回成功与否。类似下面的内容
public bool DoAddressStuff(string stuff, string stuff2)
{
bool retval = true;
try {}
catch (WebDriverTimeoutException e)
{
// Do Something
retVal = false;
}
return retVal;
}
然后将通话更改为以下内容
if(!DoAddressStuff(nr1 , nr2 ));//may be add number of retries
{
DoAddressStuff(nr1 , nr2 )
}