我定义了一个Thread线程,需要再线程中往MapControl中加载经过相关处理后的图层数据,结果发现数据虽然可以加载上去,但是再TocControl中无法看到完整图例,并且点击展开图例的时候程序就会卡死,内存会增大很多,但是同样的代码我如果不用线程执行确是好的,请各位高人帮忙看看,以下是主要代码:
          //自定义的线程
          pThread = new Thread(LoadRemoteDataProc);   
         pThread.Start(pArrayList);        //线程执行的操作
         public void LoadRemoteDataProc(object obj)
        {
            ArrayList pCheckList = (ArrayList)obj;  //传递参数正常
            ArrayList pList = new ArrayList();
            string CatalogName = pCheckList[0].ToString();            //对所有选中的数据逐个提取
              SDEOperation pSDEOperation = new SDEOperation();
            if (pSDEOperation.Connect())
            {
                for (int i = 1; i < pCheckList.Count; i++)  //提取数据正常
                {
                    //获取栅格目录对象,正常
                    IRasterCatalog pRasterCatalog = pSDEOperation.getRasterCatalog(CatalogName);                    //提取数据,正常
                      IRasterDataset pRasterDataset = pSDEOperation.GetRasterCatalogItem(pRasterCatalog, pCheckList[i].ToString());                    if (pRasterDataset != null)
                    {
                     //将数据集对象转换为图层对象,成功
                        IRasterLayer pRasterLayer = new RasterLayerClass();
                     pRasterLayer.CreateFromDataset(pRasterDataset);                     axMapControl.AddLayer(pRasterLayer);  
                     //数据也正常加载了,但是加载上去后一旦点击展开图例就死机了
                    }
                }
            }
            //退出窗口,关闭线程
             if (pThread != null)
            {
                try
                {
                    pThread.Abort();
                }
                catch { }
            }
        }       上述代码在运行的时候可以完成,也没有报错,数据正常加载并可以看到,可就是点击展开图例的时候会死机,不知道是不是COM对象的问题,请各位帮忙指点一二,十分感谢!我的问题和http://forums.esri.com/Thread.aspc=159&f=1707&t=177436这个上面的一样,目前还没找到答案。