///<summary> /// Calls SearchExperiments on the server and waits for a response (synchronous). /// This should not be called on a UI thread ///</summary> public ExperimentSearchResult SearchExperiments(ExperimentSearchRequest searchRequest) { IAsyncResult result = BeginSearchExperiments(searchRequest, null, null); result.AsyncWaitHandle.WaitOne(); return(EndSearchExperiments(result)); }
///<summary> /// Returns the result of calling SearchExperiments on the server as an async Task. ///</summary> public Task <ExperimentSearchResult> SearchExperimentsAsync(ExperimentSearchRequest searchRequest) { var taskSource = new TaskCompletionSource <ExperimentSearchResult>(); BeginSearchExperiments(searchRequest, asyncResult => { try { var result = EndSearchExperiments(asyncResult); taskSource.SetResult(result); } catch (Exception exception) { taskSource.SetException(exception); } }, null); return(taskSource.Task); }
/// <summary> /// Returns a list of experiments that satisfy user criteria /// </summary> public IAsyncResult BeginSearchExperiments(ExperimentSearchRequest searchRequest, System.AsyncCallback callback, object asyncState) { return(base.Channel.BeginSearchExperiments(searchRequest, callback, asyncState)); }