Ejemplo n.º 1
0
//JAVA TO C# CONVERTER WARNING: 'final' parameters are not available in .NET:
//ORIGINAL LINE: protected ThreadControl executeControllableCommand(final ControllableCommand<?> command)
        protected internal virtual ThreadControl executeControllableCommand <T1>(ControllableCommand <T1> command)
        {
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final Thread controlThread = Thread.currentThread();
            Thread controlThread = Thread.CurrentThread;

            Thread thread = new Thread(() =>
            {
                try
                {
                    processEngineConfiguration.CommandExecutorTxRequiresNew.execute(command);
                }
                catch (Exception e)
                {
                    command.monitor.Exception = e;
                    controlThread.Interrupt();
                    throw e;
                }
            });

            controllableCommands.Add(command);
            command.monitor.executingThread = thread;

            thread.Start();

            return(command.monitor);
        }
Ejemplo n.º 2
0
        protected internal virtual ThreadControl ExecuteControllableCommand <T>(ControllableCommand <T> command)
        {
            var controlThread = Thread.CurrentThread;

            var thread = new Thread(() =>
            {
                try
                {
                    processEngineConfiguration.CommandExecutorTxRequired.Execute(command);
                }
                catch (System.Exception e)
                {
                    command.Monitor.Exception = e;
                    controlThread.Interrupt();
                    throw e;
                }
            });

            // Todo: 泛型参数到object的转型
            _controllableCommands.Add(command as ControllableCommand <object>);
            command.Monitor.executingThread = thread;

            thread.Start();

            return(command.Monitor);
        }