【发布时间】:2012-10-02 22:51:01
【问题描述】:
插件最初是在没有使用后台工作人员的情况下编写的,并且运行良好。我能够创建一个 shapefile,它可以在同一个 ArcMap 会话中执行后立即添加和查看。
然后我尝试在 UI 中添加一个进度条,在执行完成之前它没有显示任何更改。那时我添加了一个 backgroundworker 类并将耗时的 shapefile 创建代码(没有任何更改)移动到 backgroundworker 的 dowork 事件处理程序中。
虽然这使 UI 响应速度更快,但如果我将结果 shapefile 添加到同一个 ArcMap 会话中,屏幕上不会显示任何内容。 ArcMap 还报告了一个绘图错误,说“无法获取锁[表 xxx 正在被另一个进程写入]。
我确信此时写作已经完成。如果我关闭当前 ArcMap 会话并启动一个新会话,我可以毫无问题地查看结果。
要发布的代码太多,我强烈感觉问题是由于将代码原样移动到 backgroundworker 类引起的。我希望你们在后台工作人员/ArcGIS 插件方面更有经验的人可以给我一些指示,这可能是罪魁祸首。提前致谢!
【问题讨论】:
标签: c# backgroundworker add-in arcgis esri