1

我需要一些合乎逻辑的建议来设置自定义长时间运行的计时器作业(超过半小时)的进度。

我在计时器作业执行中有超过 50k 个项目的循环。

如何优雅地每两分钟更新进度条使用SPJobDefinition.UpdateProgress(int percentage)方法?

我不想更新 for 循环中每次迭代的进度(进度更新太多)。

示例代码

 SPListItemCollection collListItems = list.GetItems();
    for (var i = 0; i < collListItems.Count; i++)
    { 
     //code
    }
4

1 回答 1

1

然后进行 10 或 20 次更新。我的意思是这样的:

var percentBlock = 10;
var updateBlock = collListItems.Count / percentBlock;
SPListItemCollection collListItems = list.GetItems();
for (var i = 0; i < collListItems.Count; i++)
{ 
    if(i % updateBlock == 0)
        SPJobDefinition.UpdateProgress(i / updateBlock * percentBlock);
    //code
}

我认为这将比定期更新更公平。

于 2020-10-21T15:00:44.730 回答