AO支持多线程吗? 我试着在线程中调用接口会失败。比如下面这段

// 精确到1位 Int(\'{0}\'*10)/10.0
ESRI.ArcGIS.SpatialAnalyst.IMapAlgebraOp rasterCalc = new ESRI.ArcGIS.SpatialAnalyst.RasterMapAlgebraOpClass();

IRasterWorkspace wsRaster = pWSF.OpenFromFile(m_outputDir, 0) as IRasterWorkspace;
IRasterDataset dsRaster = wsRaster.OpenRasterDataset(strTempImage);
IGeoDataset geoDS = dsRaster as IGeoDataset;

if (geoDS == null) throw new Exception("影像文件打开错误");

string rasterSymbol = "TEMPLATE_RASTER";
rasterCalc.BindRaster(geoDS, rasterSymbol);

// Int([TEMPLATE_RASTER] * 10) / 10.0
string expresion = string.Format("Floor([{0}]*{1})/{1:F1}", rasterSymbol, Math.Pow(10, m_Precition));
IGeoDataset rasterNew = rasterCalc.Execute(expresion); 
// Execute 时提示“服务器出现意外情况。 (异常来自 HRESULT:0x80010105 (RPC_E_SERVERFAULT))”
已邀请:

朱新颖

赞同来自: nfc

支持多线程,但是不支持同一个AO对象跨线程调用。

nfc - GISer

赞同来自:

我应该是找到原因了,“[rasIn]+10” 这样的表达式是错误的,应该是 “[rasIn] + 10”,仔细看区别,哈哈。

要回复问题请先登录注册