コード例 #1
0
        public static void BeginExecute <TResult>(this IEnumerable <ICommand> commands, Action <CommandWork <TResult> > callback)
        {
            var work = new CommandWork <TResult>(commands);
            var cmd  = (ICommand)work;

            cmd.EndExecute += x => callback(work);
            cmd.Execute();
        }
コード例 #2
0
        public static void BeginExecute(this ICommand command, Action <ICommand> callback)
        {
            var work = new CommandWork(ExecutingCommand(command));
            var cmd  = (ICommand)work;

            cmd.EndExecute += x => callback(command);
            cmd.Execute();
        }
コード例 #3
0
        public static CommandWork <TResult> Execute <TResult>(this IEnumerable <ICommand> commands)
        {
            var work = new CommandWork <TResult>(commands);
            var cmd  = (ICommand)work;
            var mre  = new ManualResetEvent(false);

            cmd.EndExecute += x => mre.Set();
            cmd.Execute();
            mre.WaitOne();
            return(work);
        }
コード例 #4
0
        public static ICommand Execute(this ICommand command)
        {
            var work = new CommandWork(ExecutingCommand(command));
            var cmd  = (ICommand)work;
            var mre  = new ManualResetEvent(false);

            cmd.EndExecute += x => mre.Set();
            cmd.Execute();
            mre.WaitOne();
            return(command);
        }