【问题标题】:How to add layer, created by another thread, to Axmapcontrol如何将由另一个线程创建的图层添加到 Axmapcontrol
【发布时间】:2018-06-12 20:24:31
【问题描述】:

我有一个包含栅格数据集的地理数据库。我可以读取这些数据集并将它们转换为图层。我想添加这些层,创建另一个线程,到 axmapcontrol 但我收到错误“vshost32 已停止工作”。

我尝试了 Invoke 方法、Action 方法和 Backgroundworker,但它们都不起作用。实际上我已经找到了一种方法来做到这一点,但它没有用。我可以将图层存储为文件,然后使用 AddLayersFromFile 方法再次读取。它比单线程架构慢,但仍然是多线程的。但是,如果我要使用图层文件,我为什么要使用地理数据库。

最后,如何在多线程结构中向 axmapcontrol 添加图层。希望你能帮助我。

【问题讨论】:

    标签: multithreading arcgis layer


    【解决方案1】:

    首先,arc 对象必须在创建时在同一个线程中使用。由于包含axmapcontrol,该线程通常是主线程。

    要修复“vshost32 已停止工作”错误,只需在 ui(main) 线程中创建层。这个操作不需要太多时间。但是创建数据集需要很长时间。所以在任何线程中创建数据集,在 ui 线程中创建图层。

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 2012-08-12
      • 1970-01-01
      • 1970-01-01
      • 2020-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-31
      • 1970-01-01
      相关资源
      最近更新 更多