Exemplo n.º 1
0
        /// <summary>
        /// Create a new <see cref="PromptNestFrame" /> and set it as the current frame.
        /// </summary>
        /// <param name="frameType">The frame type.</param>
        internal void PushPromptContext(PromptNestFrameType frameType)
        {
            if (_isDisposed)
            {
                return;
            }

            _frameStack.Push(
                new PromptNestFrame(
                    frameType.HasFlag(PromptNestFrameType.Remote)
                        ? PowerShell.Create()
                        : PowerShell.Create(RunspaceMode.CurrentRunspace),
                    NewHandleQueue(),
                    frameType));
        }
        internal PromptNestFrame(
            PowerShell powerShell,
            AsyncQueue <RunspaceHandle> handleQueue,
            PromptNestFrameType frameType)
        {
            PowerShell         = powerShell;
            Queue              = handleQueue;
            FrameType          = frameType;
            IsThreadController = (frameType & (PromptNestFrameType.Debug | PromptNestFrameType.NestedPrompt)) != 0;
            if (!IsThreadController)
            {
                return;
            }

            ThreadController = new ThreadController(this);
        }