Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Clase Process

 

Proporciona acceso a procesos locales y remotos, y permite iniciar y detener procesos del sistema local.

Para examinar el código fuente de .NET Framework para este tipo, vea la Reference Source.

Espacio de nombres:   System.Diagnostics
Ensamblado:  System (en System.dll)

System.Object
  System.MarshalByRefObject
    System.ComponentModel.Component
      System.Diagnostics.Process

[PermissionSetAttribute(SecurityAction.LinkDemand, Name = "FullTrust")]
[HostProtectionAttribute(SecurityAction.LinkDemand, SharedState = true, 
	Synchronization = true, ExternalProcessMgmt = true, SelfAffectingProcessMgmt = true)]
[PermissionSetAttribute(SecurityAction.InheritanceDemand, Name = "FullTrust")]
public class Process : Component

NombreDescripción
System_CAPS_pubmethodProcess()

Inicializa una nueva instancia de la clase Process.

NombreDescripción
System_CAPS_pubpropertyBasePriority

Obtiene la prioridad base del proceso asociado.

System_CAPS_protpropertyCanRaiseEvents

Obtiene un valor que indica si el componente puede provocar un evento.(Heredado de Component).

System_CAPS_pubpropertyContainer

Obtiene IContainer que contiene Component.(Heredado de Component).

System_CAPS_protpropertyDesignMode

Obtiene un valor que indica si la Component está actualmente en modo de diseño.(Heredado de Component).

System_CAPS_pubpropertyEnableRaisingEvents

Obtiene o establece si el evento Exited debe provocarse cuando termine el proceso.

System_CAPS_protpropertyEvents

Obtiene la lista de controladores de eventos que se adjuntará a este Component.(Heredado de Component).

System_CAPS_pubpropertyExitCode

Obtiene el valor especificado por el proceso asociado al terminar.

System_CAPS_pubpropertyExitTime

Obtiene el momento en el que terminó el proceso asociado.

System_CAPS_pubpropertyHandle

Obtiene el identificador nativo del proceso asociado.

System_CAPS_pubpropertyHandleCount

Obtiene el número de identificadores abiertos por el proceso.

System_CAPS_pubpropertyHasExited

Obtiene un valor que indica si el proceso asociado finalizó.

System_CAPS_pubpropertyId

Obtiene el identificador único del proceso asociado.

System_CAPS_pubpropertyMachineName

Obtiene el nombre del equipo en el que se está ejecutando el proceso asociado.

System_CAPS_pubpropertyMainModule

Obtiene el módulo principal del proceso asociado.

System_CAPS_pubpropertyMainWindowHandle

Obtiene el identificador de ventana de la ventana principal del proceso asociado.

System_CAPS_pubpropertyMainWindowTitle

Obtiene el título de la ventana principal del proceso.

System_CAPS_pubpropertyMaxWorkingSet

Obtiene o establece el tamaño del espacio de trabajo máximo permitido, en bytes, para el proceso asociado.

System_CAPS_pubpropertyMinWorkingSet

Obtiene o establece el tamaño del espacio de trabajo mínimo permitido, en bytes, para el proceso asociado.

System_CAPS_pubpropertyModules

Obtiene los módulos cargados por el proceso asociado.

System_CAPS_pubpropertyNonpagedSystemMemorySize

Obsoleto. Obtiene el tamaño de la memoria no paginada del sistema en bytes que se asignó para el proceso asociado.

System_CAPS_pubpropertyNonpagedSystemMemorySize64

Obtiene el tamaño de la memoria no paginada del sistema en bytes que se asignó para el proceso asociado.

System_CAPS_pubpropertyPagedMemorySize

Obsoleto. Obtiene el tamaño de la memoria paginada, en bytes, asignada para el proceso asociado.

System_CAPS_pubpropertyPagedMemorySize64

Obtiene el tamaño de la memoria paginada, en bytes, asignada para el proceso asociado.

System_CAPS_pubpropertyPagedSystemMemorySize

Obsoleto. Obtiene el tamaño de la memoria paginable del sistema en bytes que se asignó para el proceso asociado.

System_CAPS_pubpropertyPagedSystemMemorySize64

Obtiene el tamaño de la memoria paginable del sistema en bytes que se asignó para el proceso asociado.

System_CAPS_pubpropertyPeakPagedMemorySize

Obsoleto. Obtiene el tamaño de memoria máximo en el archivo de paginación de la memoria virtual, en bytes, que usa el proceso asociado.

System_CAPS_pubpropertyPeakPagedMemorySize64

Obtiene el tamaño de memoria máximo en el archivo de paginación de la memoria virtual, en bytes, que usa el proceso asociado.

System_CAPS_pubpropertyPeakVirtualMemorySize

Obsoleto. Obtiene la cantidad máxima de memoria virtual, en bytes, utilizado por el proceso asociado.

System_CAPS_pubpropertyPeakVirtualMemorySize64

Obtiene la cantidad máxima de memoria virtual, en bytes, utilizado por el proceso asociado.

System_CAPS_pubpropertyPeakWorkingSet

Obsoleto. Obtiene el tamaño de espacio de trabajo máximo para el proceso asociado, en bytes.

System_CAPS_pubpropertyPeakWorkingSet64

Obtiene la cantidad máxima de la memoria física, en bytes que usa el proceso asociado.

System_CAPS_pubpropertyPriorityBoostEnabled

Obtiene o establece un valor que indica si el sistema operativo debería aumentar temporalmente la prioridad del proceso asociado cuando la ventana principal tenga el foco.

System_CAPS_pubpropertyPriorityClass

Obtiene o establece la categoría de prioridad general del proceso asociado.

System_CAPS_pubpropertyPrivateMemorySize

Obsoleto. Obtiene el tamaño de memoria privada, en bytes, asignada para el proceso asociado.

System_CAPS_pubpropertyPrivateMemorySize64

Obtiene el tamaño de memoria privada, en bytes, asignada para el proceso asociado.

System_CAPS_pubpropertyPrivilegedProcessorTime

Obtiene el tiempo de procesador con privilegios de este proceso.

System_CAPS_pubpropertyProcessName

Obtiene el nombre del proceso.

System_CAPS_pubpropertyProcessorAffinity

Obtiene o establece los procesadores en los que se puede programar la ejecución de los subprocesos de este proceso.

System_CAPS_pubpropertyResponding

Obtiene un valor que indica si la interfaz de usuario del proceso está respondiendo.

System_CAPS_pubpropertySafeHandle

Obtiene el identificador nativo de este proceso.

System_CAPS_pubpropertySessionId

Obtiene el identificador de la sesión de Terminal Services para el proceso asociado.

System_CAPS_pubpropertySite

Obtiene o establece la ISite de la Component.(Heredado de Component).

System_CAPS_pubpropertyStandardError

Obtiene una secuencia que se usa para leer la salida de errores de la aplicación.

System_CAPS_pubpropertyStandardInput

Obtiene una secuencia que se usa para escribir la entrada de la aplicación.

System_CAPS_pubpropertyStandardOutput

Obtiene una secuencia usada para leer la salida de texto de la aplicación.

System_CAPS_pubpropertyStartInfo

Obtiene o establece las propiedades que se pasan al método Start de Process.

System_CAPS_pubpropertyStartTime

Obtiene el momento en el que se inició el proceso asociado.

System_CAPS_pubpropertySynchronizingObject

Obtiene o establece el objeto usado para serializar de las llamadas del controlador de eventos emitidas como resultado de un evento de terminación del proceso.

System_CAPS_pubpropertyThreads

Obtiene el conjunto de subprocesos que se están ejecutando en el proceso asociado.

System_CAPS_pubpropertyTotalProcessorTime

Obtiene el tiempo de procesador total de este proceso.

System_CAPS_pubpropertyUserProcessorTime

Obtiene el tiempo de procesador de usuario de este proceso.

System_CAPS_pubpropertyVirtualMemorySize

Obsoleto. Obtiene el tamaño de la memoria virtual del proceso en bytes.

System_CAPS_pubpropertyVirtualMemorySize64

Obtiene la cantidad de la memoria virtual, en bytes, que se asignó para el proceso asociado.

System_CAPS_pubpropertyWorkingSet

Obsoleto. Obtiene el uso de memoria física del proceso asociado, en bytes.

System_CAPS_pubpropertyWorkingSet64

Obtiene el tamaño de memoria física, expresado en bytes, que se asignó para el proceso asociado.

NombreDescripción
System_CAPS_pubmethodBeginErrorReadLine()

Inicia las operaciones de lectura asincrónica en la secuencia de StandardError redirigida de la aplicación.

System_CAPS_pubmethodBeginOutputReadLine()

Inicia las operaciones de lectura asincrónica en la secuencia de StandardOutput redirigida de la aplicación.

System_CAPS_pubmethodCancelErrorRead()

Cancela la operación de lectura asincrónica en la secuencia redirigida de StandardError de una aplicación.

System_CAPS_pubmethodCancelOutputRead()

Cancela la operación de lectura asincrónica en la secuencia redirigida de StandardOutput de una aplicación.

System_CAPS_pubmethodClose()

Libera todos los recursos asociados a este componente.

System_CAPS_pubmethodCloseMainWindow()

Cierra un proceso que contiene una interfaz de usuario mediante el envío de un mensaje de cierre a su ventana principal.

System_CAPS_pubmethodCreateObjRef(Type)

Crea un objeto que contiene toda la información pertinente necesaria para generar a un proxy utilizado para comunicarse con un objeto remoto.(Heredado de MarshalByRefObject).

System_CAPS_pubmethodDispose()

Libera todos los recursos usados por Component.(Heredado de Component).

System_CAPS_protmethodDispose(Boolean)

Esta API admite la infraestructura producto y no está diseñada para usarse directamente desde el código. Libera todos los recursos usados por este proceso.(Invalida Component.Dispose(Boolean)).

System_CAPS_pubmethodSystem_CAPS_staticEnterDebugMode()

Coloca un componente Process en estado de interacción con los procesos del sistema operativo que se ejecutan en un modo especial; para ello, habilita la propiedad nativa SeDebugPrivilege en el subproceso actual.

System_CAPS_pubmethodEquals(Object)

Determina si el objeto especificado es igual al objeto actual.(Heredado de Object).

System_CAPS_protmethodFinalize()

Libera recursos no administrados y realiza otras operaciones de limpieza antes de que se reclame el elemento Component durante la recolección de elementos no usados.(Heredado de Component).

System_CAPS_pubmethodSystem_CAPS_staticGetCurrentProcess()

Obtiene un nuevo componente Process y lo asocia al proceso que está activo en ese momento.

System_CAPS_pubmethodGetHashCode()

Sirve como la función hash predeterminada.(Heredado de Object).

System_CAPS_pubmethodGetLifetimeService()

Recupera el objeto de servicio de duración actual que controla la directiva de duración de esta instancia.(Heredado de MarshalByRefObject).

System_CAPS_pubmethodSystem_CAPS_staticGetProcessById(Int32)

Devuelve un nuevo componente Process, dado un identificador de un proceso en el equipo local.

System_CAPS_pubmethodSystem_CAPS_staticGetProcessById(Int32, String)

Devuelve un nuevo componente Process, dados un identificador de proceso y el nombre de un equipo en la red.

System_CAPS_pubmethodSystem_CAPS_staticGetProcesses()

Crea un nuevo componente Process para cada recurso de proceso del equipo local.

System_CAPS_pubmethodSystem_CAPS_staticGetProcesses(String)

Crea un nuevo componente Process para cada recurso de proceso en el equipo especificado.

System_CAPS_pubmethodSystem_CAPS_staticGetProcessesByName(String)

Crea una matriz de nuevos componentes Process y los asocia a todos los recursos de proceso del equipo local que comparten el nombre de proceso especificado.

System_CAPS_pubmethodSystem_CAPS_staticGetProcessesByName(String, String)

Crea una matriz de nuevos componentes Process y los asocia a todos los recursos de proceso de un equipo remoto que comparten el nombre del proceso especificado.

System_CAPS_protmethodGetService(Type)

Devuelve un objeto que representa el servicio suministrado por Component o por Container.(Heredado de Component).

System_CAPS_pubmethodGetType()

Obtiene el Type de la instancia actual.(Heredado de Object).

System_CAPS_pubmethodInitializeLifetimeService()

Obtiene un objeto de servicio de duración para controlar la directiva de duración de esta instancia.(Heredado de MarshalByRefObject).

System_CAPS_pubmethodKill()

Detiene inmediatamente el proceso asociado.

System_CAPS_pubmethodSystem_CAPS_staticLeaveDebugMode()

Recupera un componente Process del estado que le permite interactuar con procesos del sistema operativo que se ejecuten en un modo especial.

System_CAPS_protmethodMemberwiseClone()

Crea una copia superficial del Object actual.(Heredado de Object).

System_CAPS_protmethodMemberwiseClone(Boolean)

Crea una copia superficial del actual MarshalByRefObject objeto.(Heredado de MarshalByRefObject).

System_CAPS_protmethodOnExited()

Genera el evento Exited.

System_CAPS_pubmethodRefresh()

Descarta cualquier información acerca del proceso asociado que se haya almacenado en caché en el componente del proceso.

System_CAPS_pubmethodStart()

Inicia (o vuelve a usar) el recurso de proceso especificado en la propiedad StartInfo de este componente Process y lo asocia al componente.

System_CAPS_pubmethodSystem_CAPS_staticStart(ProcessStartInfo)

Inicia el recurso de proceso que se especifica mediante el parámetro que contiene la información de inicio del proceso (por ejemplo, el nombre de archivo del proceso que se va a iniciar) y asocia el recurso a un nuevo componente Process.

System_CAPS_pubmethodSystem_CAPS_staticStart(String)

Inicia un recurso de proceso con la especificación del nombre de un documento o de un archivo de aplicación y asocia el recurso a un nuevo componente Process.

System_CAPS_pubmethodSystem_CAPS_staticStart(String, String)

Inicia un recurso de proceso mediante la especificación del nombre de una aplicación y un conjunto de argumentos de línea de comandos, y asocia el recurso a un nuevo componente Process.

System_CAPS_pubmethodSystem_CAPS_staticStart(String, String, SecureString, String)

Inicia un recurso de proceso mediante la especificación del nombre de una aplicación, un nombre de usuario, una contraseña y un dominio, y asocia el recurso a un nuevo componente de Process.

System_CAPS_pubmethodSystem_CAPS_staticStart(String, String, String, SecureString, String)

Inicia un recurso de proceso mediante la especificación del nombre de una aplicación y un conjunto de argumentos de línea de comandos, un nombre de usuario, una contraseña y un dominio, y asocia el recurso a un nuevo componente de Process.

System_CAPS_pubmethodToString()

Aplica formato de cadena al nombre del proceso, combinándolo con el tipo de componente principal, si es aplicable.(Invalida Component.ToString()).

System_CAPS_pubmethodWaitForExit()

Indica al componente Process que espere indefinidamente hasta que el proceso asociado termine.

System_CAPS_pubmethodWaitForExit(Int32)

Indica al componente Process que espere a que el proceso asociado termine durante el número de milisegundos especificado.

System_CAPS_pubmethodWaitForInputIdle()

Hace que el componente Process espere indefinidamente a que el proceso asociado entre en estado de inactividad. Esta sobrecarga solo se aplica a los procesos que tengan una interfaz de usuario y, por tanto, un bucle de mensajes.

System_CAPS_pubmethodWaitForInputIdle(Int32)

Hace que el componente Process espere a que el proceso asociado entre en estado de inactividad durante el número de milisegundos especificado. Esta sobrecarga solo se aplica a los procesos que tengan una interfaz de usuario y, por tanto, un bucle de mensajes.

NombreDescripción
System_CAPS_pubeventDisposed

Se produce cuando el componente se elimina mediante una llamada a la Dispose (método).(Heredado de Component).

System_CAPS_pubeventErrorDataReceived

Se produce cuando una aplicación escribe en su secuencia redirigida de StandardError.

System_CAPS_pubeventExited

Se produce cuando termina un proceso.

System_CAPS_pubeventOutputDataReceived

Se produce cada vez que una aplicación escribe una línea en su secuencia StandardOutput redirigida.

System_CAPS_noteNota

Para ver el código fuente de .NET Framework para este tipo, consulte el Reference Source. Puede examinar el código fuente en línea, descargue la referencia para verla sin conexión y recorrer (incluidas las revisiones y actualizaciones) durante la depuración; see instructions.

Un Process componente proporciona acceso a un proceso que se ejecuta en un equipo. Un proceso en los términos más simples, es una aplicación en ejecución. Un subproceso es la unidad básica a la que el sistema operativo asigna tiempo de procesador. Un subproceso puede ejecutar cualquier parte del código del proceso, incluidos los elementos que se está ejecutadas actualmente por otro subproceso.

El Process componente es una herramienta útil para iniciar, detener, controlar y supervisar aplicaciones. Puede usar el Process componente para obtener una lista de los procesos que se ejecutan, o puede iniciar un nuevo proceso. Un Process componente se utiliza para tener acceso a los procesos del sistema. Después de un Process se ha inicializado el componente, se puede utilizar para obtener información sobre el proceso en ejecución. Dicha información incluye el conjunto de subprocesos, los módulos cargados (archivos .dll y .exe) y usa información de rendimiento como la cantidad de memoria del proceso.

Este tipo implementa la IDisposable interfaz. Cuando haya terminado de utilizar el tipo, debería eliminar, directa o indirectamente. Para deshacerse del tipo directamente, llame a su Dispose método en un try/catch bloque. Para deshacerse de él indirectamente, usar una construcción de lenguaje como using (en C#) o Using (en Visual Basic). Para obtener más información, consulte la sección "Uso de un objeto que implementa IDisposable" en el IDisposable tema de la interfaz.

System_CAPS_noteNota

procesos de 32 bits no pueden tener acceso a los módulos de un proceso de 64 bits. Si intenta obtener información acerca de un proceso de 64 bits de un proceso de 32 bits, obtendrá un Win32Exception excepción. Un proceso de 64 bits, por otro lado, puede tener acceso a los módulos de un proceso de 32 bits.

El componente del proceso obtiene información sobre un grupo de propiedades a la vez. Después de la Process componente ha obtenido información sobre un miembro de ningún grupo, almacenarán en caché los valores de las demás propiedades de ese grupo y no obtiene nueva información acerca de los otros miembros del grupo hasta que llame a la Refresh (método). Por lo tanto, no se garantiza un valor de propiedad sea más reciente que la última llamada a la Refresh (método). Los detalles del grupo dependen del sistema operativo.

Si tiene una variable de ruta de acceso declarada en el sistema mediante comillas, debe calificar totalmente esa ruta de acceso al iniciar cualquier proceso que se encuentra en esa ubicación. De lo contrario, el sistema no encontrará la ruta de acceso. Por ejemplo, si c:\mypath no está en la ruta de acceso y la agrega utilizando comillas: path = %path%;"c:\mypath", debe completar cualquier proceso en c:\mypath cuando se inicia.

Un proceso del sistema se identifica en el sistema mediante su identificador de proceso. Al igual que muchos de los recursos de Windows, un proceso también se identifica mediante su identificador, que puede no ser único en el equipo. Un identificador es el término genérico para un identificador de un recurso. El sistema operativo conserva el identificador de proceso, que se obtiene acceso a través de la Handle propiedad de la Process componente, incluso cuando el proceso ha terminado. Por lo tanto, puede obtener información administrativa del proceso, como el ExitCode (normalmente, cero para el éxito o un código de error distinto de cero) y la ExitTime. Identificadores son un recurso muy valioso, por lo que la pérdida es mucho más dañina que la pérdida de memoria.

System_CAPS_noteNota

Esta clase contiene una petición de vínculo y una petición de herencia en el nivel de clase que se aplica a todos los miembros. Un SecurityException se produce cuando el llamador inmediato o la clase derivada no tiene permiso de plena confianza. Para obtener más información acerca de las peticiones de seguridad, consulte Link Demands.

En .NET Framework en el escritorio, la Process clase utiliza de manera predeterminada Console codificaciones, que suelen ser código codificaciones de páginas, para las secuencias de entrada, salida y error. Por ejemplo, en sistemas cuya referencia cultural es inglés (Estados Unidos), página de códigos 437 es la codificación predeterminada para el Console clase. Sin embargo, Núcleo de .NET puede que solo un subconjunto limitado de estas codificaciones disponible. Si es así, utiliza Encoding.UTF8 como la codificación predeterminada.

Si un Process objeto depende de codificaciones de páginas de código específico, puede seguir ponerlos a disposición de la siguiente antes de llamar a cualquier Process métodos:

  1. Agregue una referencia al ensamblado System.Text.Encoding.CodePages.dll al proyecto.

  2. Recuperar el EncodingProvider del objeto desde el CodePagesEncodingProvider.Instance propiedad.

  3. Pasar el EncodingProvider de objeto para el Encoding.RegisterProvider método para hacer que las codificaciones adicionales admitidas por el proveedor de codificación disponible.

La Process clase, a continuación, utilizará automáticamente la codificación predeterminada del sistema en lugar de UTF8, siempre que haya registrado el proveedor de codificación antes de llamar a cualquier Process métodos.

En el ejemplo siguiente se utiliza una instancia de la Process clase para iniciar un proceso.

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

namespace MyProcessSample
{
    class MyProcess
    {
        public static void Main()
        {
            Process myProcess = new 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 is 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);
            }
        }
    }
}

En el ejemplo siguiente se utiliza la Process clase propio y estática Start método para iniciar un proceso.

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

El siguiente ejemplo de F # define un runProc función que inicia un proceso, captura toda la información de salida y de error y registra el número de milisegundos que se ha ejecutado el proceso. El runProc función tiene tres parámetros: el nombre de aplicación para iniciar, los argumentos para proporcionar a la aplicación y el directorio de inicio.

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

The code for the runProc function was written by ImaginaryDevelopmenthttp://fssnip.net/authors/ImaginaryDevelopment and is available under the Microsoft Public Licensehttp://opensource.org/licenses/ms-pl.

LinkDemand

for full trust for the immediate caller. This class cannot be used by partially trusted code.

InheritanceDemand

for full trust for inheritors. This class cannot be inherited by partially trusted code.

.NET Framework
Disponible desde 1.1

Cualquier miembro ( Compartido en Visual Basic) estático público de este tipo es seguro para subprocesos. No se garantiza que los miembros de instancia sean seguros para subprocesos.

Volver al principio
Mostrar: