c#+arcengine开发中,调用 融合gp工具处理数据,在最后释放gp工具中错误列表出现“System.InvalidCastException”类型异常 的错误 怎么解决

c#+arcengine开发中,调用 融合gp工具处理数据,在最后释放gp工具中错误列表出现“System.InvalidCastException”类型的第一次机会异常在 mscorlib.dll 中发生 的错误 怎么解决,虽然并没有影响程序运行,但是还是感觉会有问题,故求助:
  public  void FeatureDissolve(IFeatureLayer pGeoPolygonLayer, string pPath, string outFeatureClassName, string filedsName)
{
ESRI.ArcGIS.Geoprocessing.IGeoProcessorResult result = null;

Geoprocessor gp = new Geoprocessor();
gp.OverwriteOutput = true;

ESRI.ArcGIS.DataManagementTools.Dissolve dissolve = new ESRI.ArcGIS.DataManagementTools.Dissolve();
dissolve.in_features = pGeoPolygonLayer.FeatureClass;
ESRI.ArcGIS.Geoprocessing.IGpValueTableObject pObject = new ESRI.ArcGIS.Geoprocessing.GpValueTableObjectClass();//对多个字段进行融合添加
pObject.SetColumns(1);
pObject.AddRow(filedsName);
//pObject.AddRow("字段2");
//pObject.AddRow("字段3");
dissolve.dissolve_field = pObject;
dissolve.multi_part = "SINGLE_PART";
dissolve.unsplit_lines = "DISSOLVE_LINES";
dissolve.statistics_fields = "";
dissolve.out_feature_class = pPath + outFeatureClassName + ".shp";

try
{
//gp.ExecuteAsync(dissolve);
result = (ESRI.ArcGIS.Geoprocessing.IGeoProcessorResult)gp.Execute(dissolve, null);
}
catch (COMException e)
{
string message = "";
for (int i = 0; i < gp.MessageCount; i++)
{
message += gp.GetMessage(i) + "\r\n";
}
MessageBox.Show(message + e.ToString());
}
finally
{
while (result.Status != esriJobStatus.esriJobSucceeded)
{
continue;
}
System.Runtime.InteropServices.Marshal.ReleaseComObject((object)result);
System.Runtime.InteropServices.Marshal.ReleaseComObject((object)gp);

}

}
“System.InvalidCastException”类型的第一次机会异常在 mscorlib.dll 中发生
“System.ArgumentException”类型的第一次机会异常在 mscorlib.dll 中发生
“System.InvalidCastException”类型的第一次机会异常在 mscorlib.dll 中发生
“System.ArgumentException”类型的第一次机会异常在 mscorlib.dll 中发生

 
已邀请:

朱新颖

赞同来自:

前面先把dissolve释放掉试试,好像gp不释放也可以吧

要回复问题请先登录注册