Beispiel #1
0
        public bool Wait(CommandResult result)
        {
            if (result == null)
            {
                return(true);
            }

            ClearInterrupt();
            WaitHandle[] handles = new WaitHandle [2];
            handles [0] = interrupt_event;
            handles [1] = result.CompletedEvent;

            int ret = WaitHandle.WaitAny(handles);

            if (ret == 0)
            {
                result.Abort();
                result.CompletedEvent.WaitOne();
                return(false);
            }

            if (result.Result is Exception)
            {
                throw (Exception)result.Result;
            }

            return(true);
        }