Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Web部件中的异步方法_C#_Sharepoint_Asynchronous_Web Parts - Fatal编程技术网

C# Web部件中的异步方法

C# Web部件中的异步方法,c#,sharepoint,asynchronous,web-parts,C#,Sharepoint,Asynchronous,Web Parts,我已经在一个Web部件上编写代码好几天了。此Web部件的目的是清理给定的文档库。我有16000多个msg文件在那里,我必须根据一些给定的规则验证每个msg文件的to和From头 一切都很好,只是这个过程需要永远。“收件人”或“发件人”中允许的所有可能值都存储在SharePoint本身的SPList中 通过异步调用特定的邮件验证方法,我能够根据业务规则和Web部件本身分割验证过程 现在,我有点迷失的技术部分: 该方法返回我要绑定到复选框列表的字典。 那我该怎么做呢?因为我必须等到异步邮件验证方法完

我已经在一个Web部件上编写代码好几天了。此Web部件的目的是清理给定的文档库。我有16000多个msg文件在那里,我必须根据一些给定的规则验证每个msg文件的to和From头

一切都很好,只是这个过程需要永远。“收件人”或“发件人”中允许的所有可能值都存储在SharePoint本身的SPList中

通过异步调用特定的邮件验证方法,我能够根据业务规则和Web部件本身分割验证过程

现在,我有点迷失的技术部分:

该方法返回我要绑定到复选框列表的字典。 那我该怎么做呢?因为我必须等到异步邮件验证方法完成后才能绑定CheckBoxList的数据源


我的Web部件实际上由我加载到Web部件中的usercontrol组成。

您考虑过使用jQuery/Ajax而不是usercontrol和直接代码隐藏吗?这就是我在Web部件上处理异步加载的方式,记住我们99%的开发使用xml/xslt生成html。

您的异步方法应该调用一个回调函数,该函数将继续处理。这个回调应该进行绑定;它仅在异步进程完成时发生

或者,有那么多项目,您可能仍然会遇到问题。为什么不创建一个完全异步的进程呢?您的Web部件可以在SharePoint中计划一次运行计时器作业,该作业完全异步执行清理。或者将作业的详细信息记录在列表中,该列表可由计划的可执行或stsadm命令扩展获取。
这将适用于列表中任意数量的项目。

谢谢。我确实遇到了那么多问题。我已经应用了您的解决方案,将我需要删除的项目存储在列表中。然后,我的Web部件将检查该列表是否包含项目,并据此采取行动。这不是很理想,因为我需要重新加载包含Web部件的页面。我不太理解您的答案。我使用用户控件,因为对我来说,这似乎是一种比直接在web部件中编码更干净的方法。我只有一个方法需要异步运行。一种C#方法。我认为jQuery/AJAX对此没有帮助,还是我错了?