我有一个长时间运行的SharePoint计时器作业,我想在集中管理中显示它的进度(所以我使用的是SPJobDefinition.UpdateProgress(int percentage)
方法)
假设我在列表中有50 000个元素,我想在foreach循环中更新。如果我在循环中放置job.UpdateProgress((int) itemNo / itemCount)
之类的内容,是否会在每次调用方法时(50 000次)向SharePoint服务器发送Web请求,或者仅在实际更改百分比(不超过100次)时向Web服务器发送? / p>
由于这一点,我不希望任何明显的性能下降,我想更多的请求可能会减慢工作速度。
此外,什么工具可以很好地查看请求和响应(Fiddler?或者其他什么对Sharepoint更好?)。
答案 0 :(得分:1)
(在SP2010中)每次调用job.UpdateProgress时,SPJobDefinition类都将发送SPRequest。 SPJobDefinition不会在内部跟踪其'完成百分比,因此除非它与服务器联系,否则它无法知道您的新int是否是更新,因此它只是与服务器联系。所以,是的,调用50000次可能会显着降低代码速度。
找出这样的东西的最简单方法(因为在线MSDN文档有时可能非常稀疏)是在Microsoft.SharePoint.dll上使用.Net反射器。就个人而言,我倾向于使用ilSpy。