コード例 #1
0
        /// <inheritdoc/>
        public IAsyncResult BeginRun(AcadCommand command, IProcess process, AsyncCallback completionCallback, object asyncState)
        {
            if (command == null)
                throw new ArgumentNullException("command");
            if (process == null)
                throw new ArgumentNullException("process");
            if (process.HasExited)
                throw new ArgumentNullException("process", "Process has exited.");

            var task = new CommandTask(command, process, completionCallback, asyncState);
            return task.Begin();
        }
コード例 #2
0
 private static void SendCommand(object application, AcadCommand command)
 {
     try
     {
         var document   = GetActiveDocument(application);
         var parameters = new object[] { command.ToLispExpression(application) };
         document.GetType().InvokeMember("SendCommand", BindingFlags.InvokeMethod, null, document, parameters);
         GC.KeepAlive(application);
     }
     catch (COMException e)
     {
         throw new TimeoutException("Unable to send messages to the AutoCAD process.", e);
     }
 }
コード例 #3
0
        /// <inheritdoc/>
        public IAsyncResult BeginRun(AcadCommand command, IProcess process, AsyncCallback completionCallback, object asyncState)
        {
            if (command == null)
            {
                throw new ArgumentNullException("command");
            }
            if (process == null)
            {
                throw new ArgumentNullException("process");
            }
            if (process.HasExited)
            {
                throw new ArgumentNullException("process", "Process has exited.");
            }

            var task = new CommandTask(command, process, completionCallback, asyncState);

            return(task.Begin());
        }
コード例 #4
0
 public CommandTask(AcadCommand command, IProcess process, AsyncCallback completionCallback, object asyncState)
 {
     this.command = command;
     this.process = process;
     this.result = new CommandTaskResult(completionCallback, asyncState);
 }
コード例 #5
0
 private static void SendCommand(object application, AcadCommand command)
 {
     try
     {
         var document = GetActiveDocument(application);
         var parameters = new object[] { command.ToLispExpression(application) };
         document.GetType().InvokeMember("SendCommand", BindingFlags.InvokeMethod, null, document, parameters);
         GC.KeepAlive(application);
     }
     catch (COMException e)
     {
         throw new TimeoutException("Unable to send messages to the AutoCAD process.", e);
     }
 }
コード例 #6
0
 public CommandTask(AcadCommand command, IProcess process, AsyncCallback completionCallback, object asyncState)
 {
     this.command = command;
     this.process = process;
     this.result  = new CommandTaskResult(completionCallback, asyncState);
 }