Esempio n. 1
0
        internal async static void HandleClientUpdate(string staskId, STaskStatus status, object result)
        {
            STaskInfo info;

            if (!_submissionTracker.TryGetValue(staskId, out info))
            {
                throw new Exception("Could not get task from the tracker");
            }
            try
            {
                await Task.Run(() =>
                               info.CallbackChannel.UpdateStatus(info.ClientRequest.Id, status, result));

                RemoveComplete(info.ClientRequest.Id);
            }
            catch (AggregateException ex)
            {
                throw ex;
            }
        }
Esempio n. 2
0
        public void UpdateStatus(string id, STaskStatus status, object result)
        {
            ClientRequestInfo <TResult> info;

            if (_requests.TryRemove(id, out info))
            {
                switch (status)
                {
                case STaskStatus.Completed:
                    info.CompletionSource.SetResult((TResult)result);
                    break;

                case STaskStatus.Canceled:
                    info.CompletionSource.SetCanceled();
                    break;

                case STaskStatus.Faulted:
                    info.CompletionSource.SetException((Exception)result);
                    break;
                }
            }
        }
Esempio n. 3
0
 public void UpdateStatus(string id, STaskStatus status, object result)
 {
     CoordinatorContext.HandleClientUpdate(id, status, result);
 }