I am trying to run a few geoprocessing methods in the sequence they occur. It works fine if I just keep it simple, but I want to add some additional parameters, such as environment and GPExecuteToolFlags. There is an errors that states the "Object reference is not set to an instance of an object." Please see my code below.
var in_features = new List<FeatureLayer>() { FC_Layer1, Layer2 };
var args = Geoprocessing.MakeValueArray(in_features, intersectFC);
GPExecuteToolFlags outputOnMapNone = GPExecuteToolFlags.None;
GPRun("analysis.Intersect", args,null,null,outputOnMapNone);
var Agg_para = Geoprocessing.MakeValueArray(intersectFC, intersectSortFC, GPRun("management.Sort", Agg_para, null,null,outputOnMapNone);
var in_features2 = new List<FeatureLayer>() { FCLayer, Layer2 };
var args2 = Geoprocessing.MakeValueArray(in_features2, layer);
GPExecuteToolFlags flag = GPExecuteToolFlags.GPThread;
GPRun("analysis.Intersect", args2,null,null,flag);
public async void GPRun(string GPTool, IReadOnlyList<string> parameters, IEnumerable<KeyValuePair<string, string>> env,CancelableProgressor prog,GPExecuteToolFlags flag)
{
var gp_result = await Geoprocessing.ExecuteToolAsync(GPTool, parameters, env, prog, flag);
Geoprocessing.ShowMessageBox(gp_result.Messages, "Geoprocessing Error
Messages",gp_result.IsFailed ? GPMessageBoxStyle.Error :
GPMessageBoxStyle.Default);
}
Thanks for your help!