2014-12-11 16 views
10

Ho un codice che avvia un processo utilizzando Process.Start(ProcessStartInfo). Vedo dalla documentazione che questo metodo può restituire null se un processo esistente viene riutilizzato.Quando può Process.Start() restituisce null?

[Restituisce un] nuovo componente del processo che è associato con il processo risorsa o null se viene avviata alcuna risorsa di processo (per esempio, se un processo esistente viene riutilizzato).

Che cosa significa che un processo esistente deve essere riutilizzato e in quali circostanze ciò accadrà?

risposta

10

Ciò accadrebbe se si chiama passare un file (non un file EXE) e il file è configurato per l'avvio tramite DDE.

Ad esempio, questo è il modo in cui le applicazioni di Office aprono i file nelle istanze esistenti.

+0

Mi chiedevo se fosse qualcosa di simile, così ho scritto il seguente codice di test: 'var processStartInfo = new ProcessStartInfo (@" C: \ test.doc "); var process1 = Process.Start (processStartInfo); var process2 = Process.Start (processStartInfo); ' process2 non era nullo, anche se solo l'istanza del documento è stata aperta in una singola istanza di Word. È dipendente dalla piattaforma o dalla versione? – fractor

+0

L'ho appena provato con un file xlsx. process2 era nullo. Grazie. – fractor

Problemi correlati