Пример #1
0
        public void Abort()
        {
            if (!IsRunning)
            {
                return;
            }

            // insert kill file into the directory to stop the streamer
            SendDebugMessage("FF Runner: Abort signalled.");

            if (shellRunner != null)
            {
                lock (shellRunner.StandardOutputReceivedLock)
                {
                    // Unhook events
                    shellRunner.StandardErrorReceivedLine -= new EventHandler <GenericEventArgs <string> >(shellRunner_StandardErrorReceivedLine);
                    shellRunner.StandardOutputReceived    -= new EventHandler <GenericEventArgs <byte[]> >(shellRunner_StandardOutputReceived);
                    shellRunner.ProcessFinished           -= new EventHandler <GenericEventArgs <processfinishedEventArgs> >(shellRunner_ProcessFinished);
                }

                // Kill the shell runner
                shellRunner.KillNow();
            }

            shellRunner = null;
            IsRunning   = false;
        }