Solved! Go to Solution.
// create a bool array at global scope: bool[] completedArr = new bool[2]; // on completed of 1st qry write: completedArr [0]=true; if(completedArr [0]==true && completedArr [1]==true) { // call a function/write code to merge and display the result MERGE_RESULT(); } // on completin of qry 2 write following completedArr [1]=true; if(completedArr [0] ==true && completedArr [1]==true) { MERGE_RESULT(); } // in merge method write like this : private void MERGE_RESULT() { completedArr [0]=false; completedArr [1]=false; // your logic to merge the results }
FeatureSet[] _featureSet = new FeatureSet[2];
private void Button_Click(object sender, RoutedEventArgs e)
{
Query query1 = new Query();
Query query2 = new Query();
QueryTask queryTask = new QueryTask();
queryTask.ExecuteCompleted += QueryCompleted;
// Setup your querys
DispatcherTimer timer = new DispatcherTimer { Interval = TimeSpan.FromMilliseconds(500)};
timer.Tick += (s, arg) =>
{
if ( queryTask.IsBusy ) return;
timer.Stop();
queryTask.ExecuteAsync(query2, "QUERY2");
};
queryTask.ExecuteAsync(query1, "QUERY1");
timer.Start();
}
private void QueryCompleted(object sender, QueryEventArgs e)
{
if ( (string)e.UserState == "QUERY1")
{
_featureSet[0] = e.FeatureSet;
}
if ( (string)e.UserState == "QUERY2" )
{
_featureSet[1] = e.FeatureSet;
}
DispatcherTimer timer = new DispatcherTimer { Interval = TimeSpan.FromMilliseconds(500) };
timer.Tick += (s, arg) =>
{
if ( _featureSet[0] == null || _featureSet[1] == null ) return;
timer.Stop();
//do the create intersection stuff
//make sure to reset _featureSet[] when done with FeatureSet[] _featureSet = new FeatureSet[2];
};
timer.Start();
}
// create a bool array at global scope: bool[] completedArr = new bool[2]; // on completed of 1st qry write: completedArr [0]=true; if(completedArr [0]==true && completedArr [1]==true) { // call a function/write code to merge and display the result MERGE_RESULT(); } // on completin of qry 2 write following completedArr [1]=true; if(completedArr [0] ==true && completedArr [1]==true) { MERGE_RESULT(); } // in merge method write like this : private void MERGE_RESULT() { completedArr [0]=false; completedArr [1]=false; // your logic to merge the results }