Arcengine中多线程的问题,我需要在子线程中创建要素并保存。但按下面的写总是停止运行,不知道哪有错误

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Arcengine中多线程的问题,我需要在子线程中创建要素并保存。但按下面的写总是停止运行,不知道哪有错误相关的知识,希望对你有一定的参考价值。

new Thread(ThreadStart(AddPointByStore)).Start();
线程运行的函数
public void AddPointByStore()
IFeatureLayer l = MapCtr.Map.get_Layer(0) as IFeatureLayer;
IFeatureClass fc = l.FeatureClass ;
IWorkspaceEdit w = (fc as IDataset).Workspace as IWorkspaceEdit;
IFeature f ;
IPoint p;
w.StartEditing (false);
w.StartEditOperation() ;
for (int i = 0 ; i< 100 ; i++ )
f= fc.CreateFeature();
p = new PointClass();
p.PutCoords (i,i);
f.Shape = p;
f.Store();

w.StopEditOperation();
w.StopEditing(true);

参考技术A 我现在遇到的是后台加载影像也是软件停止运行,查了资料应该是arcengine不允许跨线程访问组件,不知道你的问题解决没。 参考技术B AO组件不允许跨线程访问,可以把AO对象序列化,然后在工作线程里反序列化回来执行相关操作

PyQt5中多线程模块QThread解决界面卡顿无响应问题,线程池ThreadPoolExecutor解决多任务耗时操作问题

使用多线程模块QThread可以解决PyQt5界面程序执行比较耗时操作时,程序卡顿出现的无响应以及界面输出无法实时显示的问题。

下面例子演示:
单击“运行”按钮,启动主线程,在子线程中采用线程池ThreadPoolExecuto解决ping多个IP耗时问题。在主界面把已ping过的IP添加到显示框,同时进度条显示进度。

main.py

"""
python主文件
"""
# -*- coding: utf-8 -*-
import os
import sys
import time
from concurrent.futures.thread import ThreadPoolExecutor

<

以上是关于Arcengine中多线程的问题,我需要在子线程中创建要素并保存。但按下面的写总是停止运行,不知道哪有错误的主要内容,如果未能解决你的问题,请参考以下文章

PyQt5中多线程模块QThread解决界面卡顿无响应问题,线程池ThreadPoolExecutor解决多任务耗时操作问题

PyQt5中多线程模块QThread解决界面卡顿无响应问题,线程池ThreadPoolExecutor解决多任务耗时操作问题

ArcEngine多线程开发

如何在子线程中访问父线程的空间

Java中多线程问题总结

Java中多线程,synchronized,与 AtomicInteger的问题