Process.WaitForExit Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
İlişkili işlemin çıkmasını beklenme süresini ayarlar ve zaman geçene veya işlemden çıkılana kadar geçerli yürütme iş parçacığını engeller. Geçerli iş parçacığını engellemekten kaçınmak için olayını kullanın Exited .
Kod örnekleri için ve ExitCode özellik başvuru sayfalarına bakınStandardError.
Aşırı Yüklemeler
| Name | Description |
|---|---|
| WaitForExit() |
Bileşene Process , ilişkili işlemin çıkması için süresiz olarak beklemesini emreder. |
| WaitForExit(Int32) |
Bileşene Process , ilişkili işlemin çıkması için belirtilen sayıda milisaniye beklemesini yönerge verir. |
| WaitForExit(TimeSpan) |
İşlem bileşenine, ilişkili işlemin çıkması için belirtilen süreyi beklemesini sağlar. |
WaitForExit()
- Kaynak:
- Process.cs
- Kaynak:
- Process.cs
- Kaynak:
- Process.cs
- Kaynak:
- Process.cs
- Kaynak:
- Process.cs
Bileşene Process , ilişkili işlemin çıkması için süresiz olarak beklemesini emreder.
public:
void WaitForExit();
public void WaitForExit();
member this.WaitForExit : unit -> unit
Public Sub WaitForExit ()
Özel durumlar
Bekleme ayarına erişilemedi.
Hiçbir işlem Id ayarlanmadı ve özelliğin Id belirlenebileceği bir Handle işlem yok.
-veya-
Bu Process nesneyle ilişkilendirilmiş bir işlem yok.
-veya-
Uzak bilgisayarda çalışan bir işlemi çağırmaya WaitForExit() çalışıyorsunuz. Bu yöntem yalnızca yerel bilgisayarda çalışan işlemler için kullanılabilir.
Örnekler
Özellik başvuru sayfasının Açıklamalar bölümüne StandardError bakın.
Açıklamalar
WaitForExit() geçerli iş parçacığının ilişkili işlem sonlandırana kadar beklemesini sağlar. İşlemde diğer tüm yöntemler çağrıldıktan sonra çağrılmalıdır. Geçerli iş parçacığını engellemekten kaçınmak için olayını kullanın Exited .
Bu yöntem, bileşene işlemin ve olay işleyicilerinin çıkması için sonsuz süre beklemesini bildirir Process . Bu, bir uygulamanın yanıt vermeyi durdurmasına neden olabilir. Örneğin, kullanıcı arabirimine sahip bir işlemi çağırırsanız CloseMainWindow , işlem hiçbir zaman ileti döngüsüne girmeyecek şekilde yazılırsa, işletim sistemine ilişkili işlemi sonlandırma isteği işlenmeyebilir.
Uyarı
.NET Framework 3.5 ve önceki sürümlerinde aşırı WaitForExit() yükleme süresiz olarak değil milisaniye (yaklaşık 24 gün) boyunca MaxValue bekledi. Ayrıca, tam MaxValue saate ulaşıldıysa önceki sürümler olay işleyicilerinin çıkmasını beklemedi.
Bu aşırı yükleme, yeniden yönlendirilen standart çıktı için zaman uyumsuz olayların işlenmesi de dahil olmak üzere tüm işlemlerin tamamlanmasını sağlar. Standart çıkış zaman uyumsuz olay işleyicilerine WaitForExit(Int32) yeniden yönlendirildiğinde aşırı yüklemeye yapılan bir çağrıdan sonra bu aşırı yüklemeyi kullanmanız gerekir.
İlişkili bir işlemden çıkıldığında (yani, normal veya anormal bir sonlandırma yoluyla işlem sistemi tarafından kapatıldığında), sistem işlemle ilgili yönetim bilgilerini depolar ve adlı WaitForExit()bileşene döner. Bileşen Process daha sonra çıkış işlemine kullanarak Handle bilgilerini içeren ExitTimebilgilere erişebilir.
İlişkili işlemden çıkıldığından Handle , bileşenin özelliği artık mevcut bir işlem kaynağını işaret etmemektedir. Bunun yerine tanıtıcı yalnızca işletim sisteminin işlem kaynağı hakkındaki bilgilerine erişmek için kullanılabilir. Sistem, bileşenler tarafından Process serbest bırakılmamış çıkışlı işlemlerin tanıtıcılarını algılar, bu nedenle bileşen kaynakları özel olarak boşaltana kadar Process ve Handle bilgilerini bellekte tutarExitTime. Bu nedenle, bir örneği her çağırdığınızda Start , ilişkili işlem sonlandırıldığında ve artık bu işlemle ilgili herhangi bir Process yönetim bilgisine ihtiyacınız kalmadığında çağırın Close . Close çıkış işlemine ayrılan belleği serbest bırakır.
Ayrıca bkz.
Şunlara uygulanır
WaitForExit(Int32)
- Kaynak:
- Process.cs
- Kaynak:
- Process.cs
- Kaynak:
- Process.cs
- Kaynak:
- Process.cs
- Kaynak:
- Process.cs
Bileşene Process , ilişkili işlemin çıkması için belirtilen sayıda milisaniye beklemesini yönerge verir.
public:
bool WaitForExit(int milliseconds);
public bool WaitForExit(int milliseconds);
member this.WaitForExit : int -> bool
Public Function WaitForExit (milliseconds As Integer) As Boolean
Parametreler
- milliseconds
- Int32
İlişkili işlemin çıkışını beklemek için milisaniye cinsinden süre. 0 değeri anında bir dönüş, -1 değeri ise sonsuz beklemeyi belirtir.
Döndürülenler
true ilişkili işlemden çıkıldıysa; aksi takdirde , false.
Özel durumlar
Bekleme ayarına erişilemedi.
Hiçbir işlem Id ayarlanmadı ve özelliğin Id belirlenebileceği bir Handle işlem yok.
-veya-
Bu Process nesneyle ilişkilendirilmiş bir işlem yok.
-veya-
Uzak bilgisayarda çalışan bir işlemi çağırmaya WaitForExit(Int32) çalışıyorsunuz. Bu yöntem yalnızca yerel bilgisayarda çalışan işlemler için kullanılabilir.
milliseconds , -1 dışında bir negatif sayıdır ve bu da sonsuz zaman aşımını temsil eder.
Örnekler
Özelliği için kod örneğine ExitCode bakın.
Açıklamalar
WaitForExit(Int32) geçerli iş parçacığının ilişkili işlem sonlandırana kadar beklemesini sağlar. İşlemde diğer tüm yöntemler çağrıldıktan sonra çağrılmalıdır. Geçerli iş parçacığını engellemekten kaçınmak için olayını kullanın Exited .
Bu yöntem, bileşene Process işlemin çıkması için sınırlı bir süre beklemesini sağlar. sonlandırma isteği reddedildiği için ilişkili işlem aralığın sonuna kadar çıkmazsa, false çağırma yordamına döndürülür. için belirtebilirsiniz Timeout.Infinite ve Process.WaitForExit(Int32) aşırı yüklemeyle WaitForExit() aynı şekilde davranır.milliseconds Yöntemine 0 (sıfır) geçirirseniz, yalnızca işlemden zaten çıkılmışsa döndürür true ; aksi takdirde hemen döndürür false.
Uyarı
.NET Framework 3.5 ve önceki sürümlerinde , -1 ise milliseconds aşırı WaitForExit(Int32) yükleme süresiz olarak değil milisaniye (yaklaşık 24 gün) boyunca MaxValue bekledi.
Standart çıkış zaman uyumsuz olay işleyicilerine yeniden yönlendirildiğinde, bu yöntem döndürdüğünde çıkış işleme tamamlanmamış olabilir. Zaman uyumsuz olay işlemenin tamamlandığından emin olmak için, bu aşırı yüklemeden bir true aldıktan sonra parametre almayan aşırı yüklemeyi çağırınWaitForExit(). Windows Forms uygulamalarında olayın doğru şekilde işlendiğinden Exited emin olmak için özelliğini ayarlayın SynchronizingObject .
İlişkili bir işlemden çıkıldığında (normal veya anormal sonlandırma yoluyla işletim sistemi tarafından kapatıldığında), sistem işlemle ilgili yönetim bilgilerini depolar ve adlı WaitForExit(Int32)bileşene döner. Bileşen Process daha sonra çıkış işlemine kullanarak Handle bilgilerini içeren ExitTimebilgilere erişebilir.
İlişkili işlemden çıkıldığından Handle , bileşenin özelliği artık mevcut bir işlem kaynağını işaret etmemektedir. Bunun yerine tanıtıcı yalnızca işletim sisteminin işlem kaynağı hakkındaki bilgilerine erişmek için kullanılabilir. Sistem, bileşenler tarafından Process serbest bırakılmamış çıkışlı işlemlerin tanıtıcılarını algılar, bu nedenle bileşen kaynakları özel olarak boşaltana kadar Process ve Handle bilgilerini bellekte tutarExitTime. Bu nedenle, bir örneği her çağırdığınızda Start , ilişkili işlem sonlandırıldığında ve artık bu işlemle ilgili herhangi bir Process yönetim bilgisine ihtiyacınız kalmadığında çağırın Close . Close çıkış işlemine ayrılan belleği serbest bırakır.
Ayrıca bkz.
Şunlara uygulanır
WaitForExit(TimeSpan)
- Kaynak:
- Process.cs
- Kaynak:
- Process.cs
- Kaynak:
- Process.cs
- Kaynak:
- Process.cs
- Kaynak:
- Process.cs
İşlem bileşenine, ilişkili işlemin çıkması için belirtilen süreyi beklemesini sağlar.
public:
bool WaitForExit(TimeSpan timeout);
public bool WaitForExit(TimeSpan timeout);
member this.WaitForExit : TimeSpan -> bool
Public Function WaitForExit (timeout As TimeSpan) As Boolean
Parametreler
- timeout
- TimeSpan
İlişkili işlemin çıkması için beklenme süresi.
Döndürülenler
true ilişkili işlemden çıkıldıysa; aksi takdirde , false.
Açıklamalar
Açıklamalara bakın WaitForExit(Int32) .