2011-05-09 66 views
0
的創建對象

我創建一個新的對象Systems.Diagnostics:在InvalidOperationException例外的System.Diagnostics.Process

System.Diagnostics.Process androidProcess= new System.Diagnostics.Process();

但我的代碼的結果,我不明白爲什麼。

BasePriority = 'androidProcess.BasePriority' threw an exception of type 'System.InvalidOperationException' 
ExitCode = 'androidProcess.ExitCode' threw an exception of type 'System.InvalidOperationException' 
ExitTime = 'androidProcess.ExitTime' threw an exception of type 'System.InvalidOperationException' 

爲什麼我的代碼會產生這些異常?

在此先感謝。

+0

顯示你的代碼。你什麼時候得到這些例外? – Cheeso 2011-05-09 11:11:25

+0

科迪是對的。還要避免在Windows上運行Android程序,錯誤的操作系統。 – 2011-05-09 12:50:34

回答

2

問題在於,在進程啓動之前,您無法訪問這些屬性中包含的值。流程開始之前,它沒有進程ID或與其關聯的句柄。

documentation爲屬性證實了這一點,這表明一個InvalidOperationException是下列條件下一個拋出:

  • 的方法已退出。
    - 或 -
  • 該進程尚未啓動,因此沒有進程ID。

的解決方案是開始你已經先創建,然後讓這些屬性所必需的過程。

0

BasePriority,ExitTime和ExitCode是隻讀的。您無法設置這些屬性。它們由CLR或啓動的流程本身設置。

看一看在MSDN:

相關問題