<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Synchronous method for QueryTask? in ArcGIS API for Silverlight Questions</title>
    <link>https://community.esri.com/t5/arcgis-api-for-silverlight-questions/synchronous-method-for-querytask/m-p/423747#M10906</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;You can "emulate" synchronous call using ManualResetEvent.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Here is code from my project (modified it a bit to remove project-specific code). It works for spatial query but you can always modify it to use "where" clause.&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
public FeatureSet Query(Geometry geometry, string layerURL)
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; if (Dispatcher.CheckAccess())
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var message = string.Format("\"Query\" method should be called on background thread.");
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; throw new Exception(message);
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; FeatureSet result = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Exception error = null;

&amp;nbsp;&amp;nbsp;&amp;nbsp; var manualResetEvent = new ManualResetEvent(false);

&amp;nbsp;&amp;nbsp;&amp;nbsp; Dispatcher.Invoke(() =&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var queryTask = new QueryTask(layerURL);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var query = new Query();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; query.OutFields.Add("*");
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; query.Geometry = geometry;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; query.ReturnGeometry = true;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; query.OutSpatialReference = Map.SpatialReference;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EventHandler&amp;lt;TaskFailedEventArgs&amp;gt; onTaskFailed = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EventHandler&amp;lt;QueryEventArgs&amp;gt; onExecuteCompleted = null;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; onTaskFailed = (s, a) =&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; queryTask.ExecuteCompleted -= onExecuteCompleted;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; queryTask.Failed -= onTaskFailed;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; error = a.Error;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; manualResetEvent.Set();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; };

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; onExecuteCompleted = (s, a) =&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; queryTask.ExecuteCompleted -= onExecuteCompleted;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; queryTask.Failed -= onTaskFailed;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; result = a.FeatureSet;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; manualResetEvent.Set();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; };

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; queryTask.ExecuteCompleted += onExecuteCompleted;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; queryTask.Failed += onTaskFailed;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; queryTask.ExecuteAsync(query);
&amp;nbsp;&amp;nbsp;&amp;nbsp; });

&amp;nbsp;&amp;nbsp;&amp;nbsp; manualResetEvent.WaitOne();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; if (error == null)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return result;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; else
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; throw error;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
}&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;You can get Dispatcher instance from any UI control, for example layout root.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Also &lt;/SPAN&gt;&lt;STRONG&gt;you must call this method on background thread&lt;/STRONG&gt;&lt;SPAN&gt; (exception on the first line is for a purpose) because manual reset event will block UI thread and entire application. You can do this by using BackgroundWorker:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
backgroundWorker.DoWork += (s, a) =&amp;gt;
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; [your code here]
&amp;nbsp;&amp;nbsp;&amp;nbsp; var featureSet = Query(geometry, layerURL);
&amp;nbsp;&amp;nbsp;&amp;nbsp; [your code here using featureSet]
&amp;nbsp;&amp;nbsp;&amp;nbsp; var maybeAnotherFeatureSet = Query(geometry2, layerURL2);
&amp;nbsp;&amp;nbsp;&amp;nbsp; [you code here using both feature sets]
};

backgroundWorker.RunWorkerCompleted += (s, a) =&amp;gt;
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; [output results and throw errors here]
};

backgroundWorker.RunWorkerAsync();&lt;/PRE&gt;&lt;BR /&gt;&lt;SPAN&gt;Using this approach you can group and chain asynchronous calls into one asynchronous background worker call.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;P.S. so much code/text here, now I think it can be overkill for your problem.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 11 Dec 2021 19:08:06 GMT</pubDate>
    <dc:creator>SergeyZorin</dc:creator>
    <dc:date>2021-12-11T19:08:06Z</dc:date>
    <item>
      <title>Synchronous method for QueryTask?</title>
      <link>https://community.esri.com/t5/arcgis-api-for-silverlight-questions/synchronous-method-for-querytask/m-p/423745#M10904</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;QueryTask has an ExecuteAsync() method, but I need a synchronous version.&amp;nbsp; I have to pull in all the features of a layer before proceeding further with the program.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;How can I achieve this?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 07 Feb 2012 21:47:42 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-api-for-silverlight-questions/synchronous-method-for-querytask/m-p/423745#M10904</guid>
      <dc:creator>MikeDuppong</dc:creator>
      <dc:date>2012-02-07T21:47:42Z</dc:date>
    </item>
    <item>
      <title>Re: Synchronous method for QueryTask?</title>
      <link>https://community.esri.com/t5/arcgis-api-for-silverlight-questions/synchronous-method-for-querytask/m-p/423746#M10905</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;QueryTask is really a synchronous operation on the server but Silverlight web requests are asynchronous, which means you need ExecuteCompleted event to get the result. &lt;/SPAN&gt;&lt;A href="http://help.arcgis.com/en/webapi/silverlight/apiref/ESRI.ArcGIS.Client~ESRI.ArcGIS.Client.Tasks.QueryTask~ExecuteAsync.html"&gt;http://help.arcgis.com/en/webapi/silverlight/apiref/ESRI.ArcGIS.Client~ESRI.ArcGIS.Client.Tasks.QueryTask~ExecuteAsync.html&lt;/A&gt;&lt;SPAN&gt;. If you are using WPF, however, you can get FeatureSet from queryTask.Execute.&lt;/SPAN&gt;&lt;BR /&gt;&lt;A href="http://help.arcgis.com/en/webapi/wpf/apiref/ESRI.ArcGIS.Client~ESRI.ArcGIS.Client.Tasks.QueryTask~Execute.html"&gt;http://help.arcgis.com/en/webapi/wpf/apiref/ESRI.ArcGIS.Client~ESRI.ArcGIS.Client.Tasks.QueryTask~Execute.html&lt;/A&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 08 Feb 2012 00:07:59 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-api-for-silverlight-questions/synchronous-method-for-querytask/m-p/423746#M10905</guid>
      <dc:creator>JenniferNery</dc:creator>
      <dc:date>2012-02-08T00:07:59Z</dc:date>
    </item>
    <item>
      <title>Re: Synchronous method for QueryTask?</title>
      <link>https://community.esri.com/t5/arcgis-api-for-silverlight-questions/synchronous-method-for-querytask/m-p/423747#M10906</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;You can "emulate" synchronous call using ManualResetEvent.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Here is code from my project (modified it a bit to remove project-specific code). It works for spatial query but you can always modify it to use "where" clause.&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
public FeatureSet Query(Geometry geometry, string layerURL)
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; if (Dispatcher.CheckAccess())
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var message = string.Format("\"Query\" method should be called on background thread.");
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; throw new Exception(message);
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; FeatureSet result = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Exception error = null;

&amp;nbsp;&amp;nbsp;&amp;nbsp; var manualResetEvent = new ManualResetEvent(false);

&amp;nbsp;&amp;nbsp;&amp;nbsp; Dispatcher.Invoke(() =&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var queryTask = new QueryTask(layerURL);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var query = new Query();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; query.OutFields.Add("*");
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; query.Geometry = geometry;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; query.ReturnGeometry = true;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; query.OutSpatialReference = Map.SpatialReference;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EventHandler&amp;lt;TaskFailedEventArgs&amp;gt; onTaskFailed = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EventHandler&amp;lt;QueryEventArgs&amp;gt; onExecuteCompleted = null;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; onTaskFailed = (s, a) =&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; queryTask.ExecuteCompleted -= onExecuteCompleted;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; queryTask.Failed -= onTaskFailed;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; error = a.Error;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; manualResetEvent.Set();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; };

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; onExecuteCompleted = (s, a) =&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; queryTask.ExecuteCompleted -= onExecuteCompleted;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; queryTask.Failed -= onTaskFailed;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; result = a.FeatureSet;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; manualResetEvent.Set();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; };

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; queryTask.ExecuteCompleted += onExecuteCompleted;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; queryTask.Failed += onTaskFailed;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; queryTask.ExecuteAsync(query);
&amp;nbsp;&amp;nbsp;&amp;nbsp; });

&amp;nbsp;&amp;nbsp;&amp;nbsp; manualResetEvent.WaitOne();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; if (error == null)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return result;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; else
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; throw error;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
}&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;You can get Dispatcher instance from any UI control, for example layout root.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Also &lt;/SPAN&gt;&lt;STRONG&gt;you must call this method on background thread&lt;/STRONG&gt;&lt;SPAN&gt; (exception on the first line is for a purpose) because manual reset event will block UI thread and entire application. You can do this by using BackgroundWorker:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
backgroundWorker.DoWork += (s, a) =&amp;gt;
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; [your code here]
&amp;nbsp;&amp;nbsp;&amp;nbsp; var featureSet = Query(geometry, layerURL);
&amp;nbsp;&amp;nbsp;&amp;nbsp; [your code here using featureSet]
&amp;nbsp;&amp;nbsp;&amp;nbsp; var maybeAnotherFeatureSet = Query(geometry2, layerURL2);
&amp;nbsp;&amp;nbsp;&amp;nbsp; [you code here using both feature sets]
};

backgroundWorker.RunWorkerCompleted += (s, a) =&amp;gt;
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; [output results and throw errors here]
};

backgroundWorker.RunWorkerAsync();&lt;/PRE&gt;&lt;BR /&gt;&lt;SPAN&gt;Using this approach you can group and chain asynchronous calls into one asynchronous background worker call.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;P.S. so much code/text here, now I think it can be overkill for your problem.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 19:08:06 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-api-for-silverlight-questions/synchronous-method-for-querytask/m-p/423747#M10906</guid>
      <dc:creator>SergeyZorin</dc:creator>
      <dc:date>2021-12-11T19:08:06Z</dc:date>
    </item>
    <item>
      <title>Re: Synchronous method for QueryTask?</title>
      <link>https://community.esri.com/t5/arcgis-api-for-silverlight-questions/synchronous-method-for-querytask/m-p/423748#M10907</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I am not sure but can't you use FeatureLayer with mode "Selection"?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 08 Feb 2012 02:25:59 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-api-for-silverlight-questions/synchronous-method-for-querytask/m-p/423748#M10907</guid>
      <dc:creator>SanajyJadhav</dc:creator>
      <dc:date>2012-02-08T02:25:59Z</dc:date>
    </item>
    <item>
      <title>Re: Synchronous method for QueryTask?</title>
      <link>https://community.esri.com/t5/arcgis-api-for-silverlight-questions/synchronous-method-for-querytask/m-p/423749#M10908</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Thank you, Surgey - I was actually working on a very similar solution, but I'm taking some pointers with your example.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I appreciate your time and help.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Mike&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 08 Feb 2012 19:22:16 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-api-for-silverlight-questions/synchronous-method-for-querytask/m-p/423749#M10908</guid>
      <dc:creator>MikeDuppong</dc:creator>
      <dc:date>2012-02-08T19:22:16Z</dc:date>
    </item>
  </channel>
</rss>

