Beispiel #1
0
        public TaskResult Wait(string delegationId, Action action, TimeSpan timeout)
        {
            var waiting = new Waiting();

            lock (AwaitingsMutex)
                Awaitings.Add(delegationId, waiting);

            action();

            try
            {
                return(waiting.Wait(timeout));
            }
            catch (Exception)
            {
                lock (AwaitingsMutex)
                    Awaitings.Remove(delegationId);
                throw;
            }
        }