在Excel中长时间运行RTD请求期间刷新工作表

时间:2013-07-26 06:12:44

标签: c# excel excel-dna rtd

我正在使用ExcelDNA在Excel AddIn上使用C#。我有一个Excel工作表,UDF放在很多单元格中作为“公式数组”发出RTD请求。

由于请求很大,因此它分为多个线程。因此,响应以大约50行的集团异步到达。用户界面始终保持响应,没问题。数据或多或少地快到了,这不是问题。

问题在于,当响应到来时,单元格会被随机重新渲染。如果我看到某些单元格的值发生了变化,则意味着我得到了响应,因此存在50行的集合。但是随机时间后该值变为可见,或者在点击或滚动表格时变为!它让我想起了一个简单的Winforms控件。如果你愿意的话,会失效。查看结果所需的随机时间取决于要处理的待处理响应的数量。当我用400行测试时,问题就出现了,但实际上并不需要解决。虽然这是一个很大的问题,但有2000行和26列有关。

我尝试以编程方式触发Excel应用程序上的某些事件但没有成功。我更改了RTD.ThrottleInterval之类的一些超时而没有效果。切换ScreenUpdating最终会抛出一个COM异常(可能不喜欢被动摇了很多)。我甚至尝试了邪恶的Application.DoEvents以防万一。

这听起来像是一个非常经典的用例,我很惊讶没有找到任何解决方案。


PS:任何导致澄清问题的提示。

0 个答案:

没有答案