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


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.dll>
using namespace System;
using namespace System::Diagnostics;
using namespace System::ComponentModel;

int main()
{
    Process^ myProcess = gcnew Process;

    try
    {
        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 );
    }
}
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);
            }
        }
    }
}
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.dll>

using namespace System;
using namespace System::Diagnostics;
using namespace System::ComponentModel;

// 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()
{
    // 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");
}

// Uses the ProcessStartInfo class to start new processes,
// both in a minimized mode.
void OpenWithStartInfo()
{
    ProcessStartInfo^ startInfo = gcnew ProcessStartInfo("IExplore.exe");
    startInfo->WindowStyle = ProcessWindowStyle::Minimized;
    Process::Start(startInfo);
    startInfo->Arguments = "www.northwindtraders.com";
    Process::Start(startInfo);
}

int main()
{
    // Get the path that stores favorite links.
    String^ myFavoritesPath = Environment::GetFolderPath(Environment::SpecialFolder::Favorites);
    OpenApplication(myFavoritesPath);
    OpenWithArguments();
    OpenWithStartInfo();
}
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();
        }
    }
}
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 и доступен на условиях лицензии Microsoft Public License.

Комментарии

Компонент 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 получает сведения о группе свойств одновременно. После того, как компонент Process получит информацию о хотя бы одном члене любой группы, он будет кэшировать значения для других свойств в этой группе и не будет получать новые сведения о других членах группы до вызова метода Refresh. Таким образом, значение свойства не обязательно будет новее, чем в момент последнего вызова метода Refresh. Схемы разделения на группы зависят от операционной системы.

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

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

Примечание

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

Заметки .NET Core

В платформа .NET Framework Process класс по умолчанию использует Console кодировки, которые обычно представляют собой кодовые страницы, для потоков входных, выходных данных и ошибок. Например, в системах, где в настройках языка и региональных параметров установлен английский (США), кодировкой по умолчанию для класса Console является кодовая страница 437. Однако .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)

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

GetProcessById(Int32, String)

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

GetProcesses()

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

GetProcesses(String)

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

GetProcessesByName(String)

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

GetProcessesByName(String, 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)

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

Start(String, IEnumerable<String>)

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

Start(String, String)

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

Start(String, String, SecureString, String)

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

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

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

ToString()

Преобразует имя процесса в строку, объединенную с родительским типом компонента, если это применимо.

ToString()

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

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

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

WaitForExit(Int32)

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

WaitForExit(TimeSpan)

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

WaitForExitAsync(CancellationToken)

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

WaitForInputIdle()

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

WaitForInputIdle(Int32)

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

WaitForInputIdle(TimeSpan)

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

События

Disposed

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

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

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

Exited

Происходит при завершении процесса.

OutputDataReceived

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

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

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