Поделиться через


Process Класс

Определение

Предоставляет доступ к локальным и удаленным процессам и позволяет запускать и останавливать локальные системные процессы.

public ref class Process : System::ComponentModel::Component, IDisposable
public ref class Process : IDisposable
public ref class Process : System::ComponentModel::Component
public class Process : System.ComponentModel.Component, IDisposable
public class Process : IDisposable
public class Process : System.ComponentModel.Component
type Process = class
    inherit Component
    interface IDisposable
type Process = class
    interface IDisposable
type Process = class
    inherit Component
Public Class Process
Inherits Component
Implements IDisposable
Public Class Process
Implements IDisposable
Public Class Process
Inherits Component
Наследование
Наследование
Process
Реализации

Примеры

В следующем примере для запуска процесса используется экземпляр Process класса.

using System;
using System.Diagnostics;
using System.ComponentModel;

namespace MyProcessSample
{
    class MyProcess
    {
        public static void Main()
        {
            try
            {
                using (Process myProcess = new Process())
                {
                    myProcess.StartInfo.UseShellExecute = false;
                    // You can start any process, HelloWorld is a do-nothing example.
                    myProcess.StartInfo.FileName = "C:\\HelloWorld.exe";
                    myProcess.StartInfo.CreateNoWindow = true;
                    myProcess.Start();
                    // This code assumes the process you are starting will terminate itself.
                    // Given that it is started without a window so you cannot terminate it
                    // on the desktop, it must terminate itself or you can do it programmatically
                    // from this application using the Kill method.
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
    }
}
open System.Diagnostics

try
    use myProcess = new Process()
    myProcess.StartInfo.UseShellExecute <- false
    // You can start any process, HelloWorld is a do-nothing example.
    myProcess.StartInfo.FileName <- @"C:\HelloWorld.exe"
    myProcess.StartInfo.CreateNoWindow <- true
    myProcess.Start() |> ignore
// This code assumes the process you are starting will terminate itself.
// Given that it is started without a window so you cannot terminate it
// on the desktop, it must terminate itself or you can do it programmatically
// from this application using the Kill method.
with e ->
    printfn $"{e.Message}"
Imports System.Diagnostics
Imports System.ComponentModel

Namespace MyProcessSample
    Class MyProcess
        Public Shared Sub Main()
            Try
                Using myProcess As New Process()

                    myProcess.StartInfo.UseShellExecute = False
                    ' You can start any process, HelloWorld is a do-nothing example.
                    myProcess.StartInfo.FileName = "C:\\HelloWorld.exe"
                    myProcess.StartInfo.CreateNoWindow = True
                    myProcess.Start()
                    ' This code assumes the process you are starting will terminate itself. 
                    ' Given that it is started without a window so you cannot terminate it 
                    ' on the desktop, it must terminate itself or you can do it programmatically
                    ' from this application using the Kill method.
                End Using
            Catch e As Exception
                Console.WriteLine((e.Message))
            End Try
        End Sub
    End Class
End Namespace

В следующем примере для запуска процесса используется Process сам класс и статический Start метод.

using System;
using System.Diagnostics;
using System.ComponentModel;

namespace MyProcessSample
{
    class MyProcess
    {
        // Opens the Internet Explorer application.
        void OpenApplication(string myFavoritesPath)
        {
            // Start Internet Explorer. Defaults to the home page.
            Process.Start("IExplore.exe");

            // Display the contents of the favorites folder in the browser.
            Process.Start(myFavoritesPath);
        }

        // Opens urls and .html documents using Internet Explorer.
        void OpenWithArguments()
        {
            // url's are not considered documents. They can only be opened
            // by passing them as arguments.
            Process.Start("IExplore.exe", "www.northwindtraders.com");

            // Start a Web page using a browser associated with .html and .asp files.
            Process.Start("IExplore.exe", "C:\\myPath\\myFile.htm");
            Process.Start("IExplore.exe", "C:\\myPath\\myFile.asp");
        }

        // Uses the ProcessStartInfo class to start new processes,
        // both in a minimized mode.
        void OpenWithStartInfo()
        {
            ProcessStartInfo startInfo = new ProcessStartInfo("IExplore.exe");
            startInfo.WindowStyle = ProcessWindowStyle.Minimized;

            Process.Start(startInfo);

            startInfo.Arguments = "www.northwindtraders.com";

            Process.Start(startInfo);
        }

        static void Main()
        {
            // Get the path that stores favorite links.
            string myFavoritesPath =
                Environment.GetFolderPath(Environment.SpecialFolder.Favorites);

            MyProcess myProcess = new MyProcess();

            myProcess.OpenApplication(myFavoritesPath);
            myProcess.OpenWithArguments();
            myProcess.OpenWithStartInfo();
        }
    }
}
module processstartstatic

open System
open System.Diagnostics

// Opens the Internet Explorer application.
let openApplication (myFavoritesPath: string) =
    // Start Internet Explorer. Defaults to the home page.
    Process.Start "IExplore.exe" |> ignore

    // Display the contents of the favorites folder in the browser.
    Process.Start myFavoritesPath |> ignore

// Opens urls and .html documents using Internet Explorer.
let openWithArguments () =
    // url's are not considered documents. They can only be opened
    // by passing them as arguments.
    Process.Start("IExplore.exe", "www.northwindtraders.com") |> ignore

    // Start a Web page using a browser associated with .html and .asp files.
    Process.Start("IExplore.exe", @"C:\myPath\myFile.htm") |> ignore
    Process.Start("IExplore.exe", @"C:\myPath\myFile.asp") |> ignore

// Uses the ProcessStartInfo class to start new processes,
// both in a minimized mode.
let openWithStartInfo () =
    let startInfo = ProcessStartInfo "IExplore.exe"
    startInfo.WindowStyle <- ProcessWindowStyle.Minimized

    Process.Start startInfo |> ignore

    startInfo.Arguments <- "www.northwindtraders.com"

    Process.Start startInfo |> ignore

// Get the path that stores favorite links.
let myFavoritesPath = Environment.GetFolderPath Environment.SpecialFolder.Favorites

openApplication myFavoritesPath
openWithArguments ()
openWithStartInfo ()
Imports System.Diagnostics
Imports System.ComponentModel

Namespace MyProcessSample
    Class MyProcess
        ' Opens the Internet Explorer application.
        Public Sub OpenApplication(myFavoritesPath As String)
            ' Start Internet Explorer. Defaults to the home page.
            Process.Start("IExplore.exe")

            ' Display the contents of the favorites folder in the browser.
            Process.Start(myFavoritesPath)
        End Sub

        ' Opens URLs and .html documents using Internet Explorer.
        Sub OpenWithArguments()
            ' URLs are not considered documents. They can only be opened
            ' by passing them as arguments.
            Process.Start("IExplore.exe", "www.northwindtraders.com")

            ' Start a Web page using a browser associated with .html and .asp files.
            Process.Start("IExplore.exe", "C:\myPath\myFile.htm")
            Process.Start("IExplore.exe", "C:\myPath\myFile.asp")
        End Sub

        ' Uses the ProcessStartInfo class to start new processes,
        ' both in a minimized mode.
        Sub OpenWithStartInfo()
            Dim startInfo As New ProcessStartInfo("IExplore.exe")
            startInfo.WindowStyle = ProcessWindowStyle.Minimized

            Process.Start(startInfo)

            startInfo.Arguments = "www.northwindtraders.com"

            Process.Start(startInfo)
        End Sub

        Shared Sub Main()
            ' Get the path that stores favorite links.
            Dim myFavoritesPath As String = Environment.GetFolderPath(Environment.SpecialFolder.Favorites)

            Dim myProcess As New MyProcess()

            myProcess.OpenApplication(myFavoritesPath)
            myProcess.OpenWithArguments()
            myProcess.OpenWithStartInfo()
        End Sub
    End Class
End Namespace 'MyProcessSample

В следующем примере F# определяется runProc функция, которая запускает процесс, записывает все выходные данные и сведения об ошибках, а также записывает количество миллисекунд, выполняемых процессом. Функция runProc имеет три параметра: имя запуска приложения, аргументы для предоставления приложению и начальный каталог.

open System
open System.Diagnostics

let runProc filename args startDir : seq<string> * seq<string> = 
    let timer = Stopwatch.StartNew()
    let procStartInfo = 
        ProcessStartInfo(
            RedirectStandardOutput = true,
            RedirectStandardError = true,
            UseShellExecute = false,
            FileName = filename,
            Arguments = args
        )
    match startDir with | Some d -> procStartInfo.WorkingDirectory <- d | _ -> ()

    let outputs = System.Collections.Generic.List<string>()
    let errors = System.Collections.Generic.List<string>()
    let outputHandler f (_sender:obj) (args:DataReceivedEventArgs) = f args.Data
    use p = new Process(StartInfo = procStartInfo)
    p.OutputDataReceived.AddHandler(DataReceivedEventHandler (outputHandler outputs.Add))
    p.ErrorDataReceived.AddHandler(DataReceivedEventHandler (outputHandler errors.Add))
    let started = 
        try
            p.Start()
        with | ex ->
            ex.Data.Add("filename", filename)
            reraise()
    if not started then
        failwithf "Failed to start process %s" filename
    printfn "Started %s with pid %i" p.ProcessName p.Id
    p.BeginOutputReadLine()
    p.BeginErrorReadLine()
    p.WaitForExit()
    timer.Stop()
    printfn "Finished %s after %A milliseconds" filename timer.ElapsedMilliseconds
    let cleanOut l = l |> Seq.filter (fun o -> String.IsNullOrEmpty o |> not)
    cleanOut outputs,cleanOut errors

Код функции runProc был написан с помощью ImaginaryDevelopment и доступен в рамках общедоступной лицензии Майкрософт.

Комментарии

Компонент Process предоставляет доступ к процессу, работающему на компьютере. Процесс, в самых простых терминах, — это работающее приложение. Поток — это базовая единица, в которую операционная система выделяет время процессора. Поток может выполнять любую часть кода процесса, включая части, выполняемые в данный момент другим потоком.

Компонент Process — это полезное средство для запуска, остановки, управления и мониторинга приложений. Компонент можно использовать Process для получения списка выполняемых процессов или запуска нового процесса. Компонент Process используется для доступа к системным процессам. Process После инициализации компонента его можно использовать для получения сведений о запущенном процессе. Такие сведения включают набор потоков, загруженные модули (.dll и .exe файлы), а также сведения о производительности, такие как объем памяти, используемой процессом.

Этот тип реализует IDisposable интерфейс. Завершив использование типа, следует избавиться от него напрямую или косвенно. Чтобы удалить тип напрямую, вызовите его Dispose метод в блоке try/finally . Чтобы удалить его косвенно, используйте конструкцию языка, например using (в C#) или Using (в Visual Basic). Дополнительные сведения см. в разделе "Использование объекта, реализующего IDisposable" в документации по интерфейсу IDisposable .

Это важно

Вызов методов из этого класса с ненадежными данными является угрозой безопасности. Вызовите методы из этого класса только с доверенными данными. Дополнительные сведения см. в разделе Проверка всех входных данных.

Замечание

32-разрядные процессы не могут получить доступ к модулям 64-разрядного процесса. Если вы пытаетесь получить сведения о 64-разрядном процессе из 32-разрядного процесса, вы получите Win32Exception исключение. С другой стороны, 64-разрядный процесс может получить доступ к модулям 32-разрядного процесса.

Компонент процесса получает сведения о группе свойств одновременно. Process После получения сведений о одном члене любой группы компонент будет кэшировать значения для других свойств в этой группе и не получать новые сведения о других членах группы, пока не вызовете Refresh метод. Таким образом, значение свойства не гарантируется более новым, чем последний вызов Refresh метода. Разбивки групп зависят от операционной системы.

Если в системе объявлена переменная пути с помощью кавычки, необходимо полностью указать этот путь при запуске любого процесса, найденного в этом расположении. В противном случае система не найдет путь. Например, если c:\mypath он не находится в пути, и вы добавляете его с помощью кавычки: path = %path%;"c:\mypath"при запуске необходимо полностью указать любой процесс c:\mypath .

Системный процесс однозначно определяется системой по идентификатору процесса. Как и многие ресурсы Windows, процесс также определяется его дескриптором, который не может быть уникальным на компьютере. Дескриптор — это универсальный термин для идентификатора ресурса. Операционная система сохраняет дескриптор процесса, доступ к которому осуществляется через Handle свойство Process компонента, даже если процесс завершился. Таким образом, вы можете получить административные сведения процесса, такие как ExitCode (обычно ноль для успешного выполнения или ненулевого кода ошибки) и ExitTime. Дескриптор является чрезвычайно ценным ресурсом, поэтому утечка дескрипторов является более вирулентной, чем утечка памяти.

В macOS следующие свойства возвращают 0:

Замечание

Этот класс содержит запрос ссылки и запрос наследования на уровне класса, которые применяются ко всем членам. SecurityException возникает, когда ни непосредственный вызывающий объект, ни производный класс не имеют разрешения на полное доверие. Дополнительные сведения о требованиях к безопасности см. в разделе "Требования ссылки".

Заметки .NET Core

В .NET Framework Process класс по умолчанию использует Console кодировки, которые обычно кодируют кодовую страницу для входных, выходных данных и потоков ошибок. Например, код в системах, язык и региональные параметры которых — английский (США), кодовая страница 437 — это кодировка по умолчанию для Console класса. Однако .NET Core может сделать только ограниченное подмножество этих кодировок доступным. Если это так, он используется Encoding.UTF8 в качестве кодировки по умолчанию.

Process Если объект зависит от кодирования определенных кодовых страниц, их можно сделать доступными, выполнив следующие действия перед вызовом любых Process методов:

  1. Получите объект EncodingProvider из свойства CodePagesEncodingProvider.Instance.

  2. Передайте объект EncodingProvider методу Encoding.RegisterProvider, чтобы сделать дополнительные кодировки, поддерживаемые поставщиком кодирования.

Затем Process класс будет автоматически использовать системную кодировку по умолчанию, а не UTF8, если вы зарегистрировали поставщика кодирования перед вызовом любых Process методов.

Конструкторы

Имя Описание
Process()

Инициализирует новый экземпляр класса Process.

Свойства

Имя Описание
BasePriority

Возвращает базовый приоритет связанного процесса.

CanRaiseEvents

Возвращает значение, указывающее, может ли компонент вызвать событие.

(Унаследовано от Component)
Container

Возвращает объект IContainer , содержащий Componentобъект .

(Унаследовано от Component)
DesignMode

Возвращает значение, указывающее, находится ли текущий Component режим разработки.

(Унаследовано от Component)
EnableRaisingEvents

Возвращает или задает, следует ли Exited вызывать событие при завершении процесса.

Events

Возвращает список обработчиков событий, подключенных к этому Component.

(Унаследовано от Component)
ExitCode

Возвращает значение, указанное связанным процессом при завершении.

ExitTime

Возвращает время завершения связанного процесса.

Handle

Возвращает собственный дескриптор связанного процесса.

HandleCount

Возвращает количество дескрипторов, открытых процессом.

HasExited

Возвращает значение, указывающее, был ли завершен связанный процесс.

Id

Возвращает уникальный идентификатор связанного процесса.

MachineName

Возвращает имя компьютера, на котором выполняется связанный процесс.

MainModule

Возвращает основной модуль для связанного процесса.

MainWindowHandle

Возвращает дескриптор окна главного окна связанного процесса.

MainWindowTitle

Получает заголовок главного окна процесса.

MaxWorkingSet

Возвращает или задает максимальный допустимый размер рабочего набора в байтах для связанного процесса.

MinWorkingSet

Возвращает или задает минимальный допустимый размер рабочего набора в байтах для связанного процесса.

Modules

Возвращает модули, загруженные связанным процессом.

NonpagedSystemMemorySize
Устаревшие..
Устаревшие..
Устаревшие..

Получает объем непагаченной системной памяти в байтах, выделенный для связанного процесса.

NonpagedSystemMemorySize64

Получает объем непагаченной системной памяти в байтах, выделенный для связанного процесса.

PagedMemorySize
Устаревшие..
Устаревшие..
Устаревшие..

Получает объем страницной памяти в байтах, выделенный для связанного процесса.

PagedMemorySize64

Получает объем страницной памяти в байтах, выделенный для связанного процесса.

PagedSystemMemorySize
Устаревшие..
Устаревшие..
Устаревшие..

Возвращает объем памяти системы, доступной для страниц, в байтах, выделенных для связанного процесса.

PagedSystemMemorySize64

Возвращает объем памяти системы, доступной для страниц, в байтах, выделенных для связанного процесса.

PeakPagedMemorySize
Устаревшие..
Устаревшие..
Устаревшие..

Получает максимальный объем памяти в файле разбиения на страницы виртуальной памяти в байтах, используемых связанным процессом.

PeakPagedMemorySize64

Получает максимальный объем памяти в файле разбиения на страницы виртуальной памяти в байтах, используемых связанным процессом.

PeakVirtualMemorySize
Устаревшие..
Устаревшие..
Устаревшие..

Получает максимальный объем виртуальной памяти в байтах, используемый связанным процессом.

PeakVirtualMemorySize64

Получает максимальный объем виртуальной памяти в байтах, используемый связанным процессом.

PeakWorkingSet
Устаревшие..
Устаревшие..
Устаревшие..

Возвращает максимальный размер рабочего набора для связанного процесса в байтах.

PeakWorkingSet64

Возвращает максимальный объем физической памяти в байтах, используемый связанным процессом.

PriorityBoostEnabled

Возвращает или задает значение, указывающее, следует ли временно повысить приоритет связанного процесса операционной системой, когда основное окно имеет фокус.

PriorityClass

Возвращает или задает общую категорию приоритетов для связанного процесса.

PrivateMemorySize
Устаревшие..
Устаревшие..
Устаревшие..

Возвращает объем частной памяти в байтах, выделенный для связанного процесса.

PrivateMemorySize64

Возвращает объем частной памяти в байтах, выделенный для связанного процесса.

PrivilegedProcessorTime

Возвращает время привилегированного процессора для этого процесса.

ProcessName

Возвращает имя процесса.

ProcessorAffinity

Возвращает или задает процессоры, на которых можно запланировать запуск потоков в этом процессе.

Responding

Возвращает значение, указывающее, отвечает ли пользовательский интерфейс процесса.

SafeHandle

Возвращает собственный дескриптор этого процесса.

SessionId

Возвращает идентификатор сеанса служб терминалов для связанного процесса.

Site

Возвращает или задает ISite объект Component.

(Унаследовано от Component)
StandardError

Возвращает поток, используемый для чтения выходных данных ошибок приложения.

StandardInput

Получает поток, используемый для записи входных данных приложения.

StandardOutput

Получает поток, используемый для чтения текстовых выходных данных приложения.

StartInfo

Возвращает или задает свойства, которые необходимо передать методу Start() объекта Process.

StartTime

Возвращает время запуска связанного процесса.

SynchronizingObject

Возвращает или задает объект, используемый для маршалирования вызовов обработчика событий, выданных в результате события выхода процесса.

Threads

Возвращает набор потоков, выполняемых в связанном процессе.

TotalProcessorTime

Возвращает общее время процессора для этого процесса.

UserProcessorTime

Возвращает время обработчика пользователя для этого процесса.

VirtualMemorySize
Устаревшие..
Устаревшие..
Устаревшие..

Возвращает размер виртуальной памяти процесса в байтах.

VirtualMemorySize64

Возвращает объем виртуальной памяти в байтах, выделенный для связанного процесса.

WorkingSet
Устаревшие..
Устаревшие..
Устаревшие..

Получает использование физической памяти связанного процесса в байтах.

WorkingSet64

Возвращает объем физической памяти в байтах, выделенный для связанного процесса.

Методы

Имя Описание
BeginErrorReadLine()

Начинает асинхронные операции чтения в перенаправленном StandardError потоке приложения.

BeginOutputReadLine()

Начинает асинхронные операции чтения в перенаправленном StandardOutput потоке приложения.

CancelErrorRead()

Отменяет асинхронную операцию чтения в перенаправленном StandardError потоке приложения.

CancelOutputRead()

Отменяет асинхронную операцию чтения в перенаправленном StandardOutput потоке приложения.

Close()

Освобождает все ресурсы, связанные с этим компонентом.

CloseMainWindow()

Закрывает процесс, имеющий пользовательский интерфейс, отправляя близкое сообщение в главное окно.

CreateObjRef(Type)

Создает объект, содержащий все соответствующие сведения, необходимые для создания прокси-сервера, используемого для взаимодействия с удаленным объектом.

(Унаследовано от MarshalByRefObject)
Dispose()

Выполняет определяемые приложением задачи, связанные с освобождением, освобождением или сбросом неуправляемых ресурсов.

Dispose()

Освобождает все ресурсы, используемые параметром Component.

(Унаследовано от Component)
Dispose(Boolean)

Выпуск всех ресурсов, используемых этим процессом.

EnterDebugMode()

Помещает Process компонент в состояние для взаимодействия с процессами операционной системы, которые выполняются в специальном режиме, включив собственное свойство SeDebugPrivilege в текущем потоке.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetCurrentProcess()

Возвращает новый Process компонент и связывает его с текущим активным процессом.

GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetLifetimeService()
Устаревшие..

Извлекает текущий объект службы времени существования, который управляет политикой времени существования для этого экземпляра.

(Унаследовано от MarshalByRefObject)
GetProcessById(Int32, String)

Возвращает новый Process компонент, присвоив идентификатор процесса и имя компьютера в сети.

GetProcessById(Int32)

Возвращает новый Process компонент, учитывая идентификатор процесса на локальном компьютере.

GetProcesses()

Создает новый Process компонент для каждого ресурса процесса на локальном компьютере.

GetProcesses(String)

Создает новый Process компонент для каждого ресурса процесса на указанном компьютере.

GetProcessesByName(String, String)

Создает массив новых Process компонентов и связывает их со всеми ресурсами процесса на удаленном компьютере, который использует указанное имя процесса.

GetProcessesByName(String)

Создает массив новых Process компонентов и связывает их со всеми ресурсами процесса на локальном компьютере, которым предоставляется общий доступ к указанному имени процесса.

GetService(Type)

Возвращает объект, представляющий службу, предоставляемую Component или ее Container.

(Унаследовано от Component)
GetType()

Возвращает Type текущего экземпляра.

(Унаследовано от Object)
InitializeLifetimeService()
Устаревшие..

Получает объект службы времени существования для управления политикой времени существования для этого экземпляра.

(Унаследовано от MarshalByRefObject)
Kill()

Немедленно останавливает связанный процесс.

Kill(Boolean)

Немедленно останавливает связанный процесс и при необходимости его дочерние или потомки.

LeaveDebugMode()

Process Извлекает компонент из состояния, который позволяет взаимодействовать с процессами операционной системы, выполняющимися в специальном режиме.

MemberwiseClone()

Создает неглубокую копию текущей Object.

(Унаследовано от Object)
MemberwiseClone(Boolean)

Создает неглубокую копию текущего MarshalByRefObject объекта.

(Унаследовано от MarshalByRefObject)
OnExited()

Вызывает событие Exited.

Refresh()

Удаляет все сведения о связанном процессе, кэшированном внутри компонента процесса.

Start()

Запускает (или повторно использует) ресурс процесса, указанный свойством StartInfo этого Process компонента и связывает его с компонентом.

Start(ProcessStartInfo)

Запускает ресурс процесса, указанный параметром, содержащим сведения о запуске процесса (например, имя файла процесса для запуска) и связывает ресурс с новым Process компонентом.

Start(String, IEnumerable<String>)

Запускает ресурс процесса, указав имя приложения и набор аргументов командной строки.

Start(String, String, SecureString, String)

Запускает ресурс процесса, указав имя приложения, имя пользователя, пароль и домен и связывает ресурс с новым Process компонентом.

Start(String, String, String, SecureString, String)

Запускает ресурс процесса, указав имя приложения, набор аргументов командной строки, имя пользователя, пароль и домен и связывает ресурс с новым Process компонентом.

Start(String, String)

Запускает ресурс процесса, указав имя приложения и набор аргументов командной строки, а также связывает ресурс с новым Process компонентом.

Start(String)

Запускает ресурс процесса, указав имя документа или файла приложения и связывает ресурс с новым Process компонентом.

ToString()

Форматирует имя процесса в виде строки, в сочетании с родительским типом компонента, если применимо.

ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)
WaitForExit()

Указывает Process компоненту ждать неограниченное время завершения связанного процесса.

WaitForExit(Int32)

Указывает Process компоненту ждать указанного количества миллисекунда для завершения связанного процесса.

WaitForExit(TimeSpan)

Указывает компоненту Process ждать указанного времени завершения связанного процесса.

WaitForExitAsync(CancellationToken)

Указывает компоненту процесса ждать завершения связанного процесса или cancellationToken отмены.

WaitForInputIdle()

Приводит Process к тому, что компонент будет ждать неограниченное время, пока связанный процесс введет состояние простоя. Эта перегрузка применяется только к процессам с пользовательским интерфейсом и, следовательно, циклом сообщений.

WaitForInputIdle(Int32)

Вызывает Process ожидание указанного числа миллисекунда для связанного процесса ввода состояния простоя. Эта перегрузка применяется только к процессам с пользовательским интерфейсом и, следовательно, циклом сообщений.

WaitForInputIdle(TimeSpan)

Вызывает Process ожидание указанного timeout компонента для связанного процесса ввода состояния простоя. Эта перегрузка применяется только к процессам с пользовательским интерфейсом и, следовательно, циклом сообщений.

События

Имя Описание
Disposed

Происходит при удалении компонента вызовом Dispose() метода.

(Унаследовано от Component)
ErrorDataReceived

Происходит при записи приложения в перенаправленный StandardError поток.

Exited

Происходит при выходе процесса.

OutputDataReceived

Происходит каждый раз, когда приложение записывает строку в перенаправленный StandardOutput поток.

Применяется к

См. также раздел