Temel olarak alt işlem, arka planda ölene kadar süresiz olarak çalışır ve programım herhangi bir nedenle, yani Görev Yöneticisi aracılığıyla sona erdiğinde, temizlemek istiyorum.Programım tarafından ortaya çıkarılan bir arkaplan sürecinin sürecim sona erdiğinde öldürülmesini sağlamanın bir yolu var mı?
Şimdilik bir sürem var (Process.GetProcessesByName ("ParentProcess"). Count()> 0) döngü ve ana işlem çalışmıyorsa çıkın, ancak oldukça kırılgan görünüyor ve eğer çalışmak istiyorsam Visual Studio'da hata ayıklayıcı altında "ParentProcess.vshost" veya bir şey eklemek zorunda kaldım.
Çocuk işleminin, ana işlem hakkında bilgi sahibi olmasını gerektirmeden, alt işlemin sonlandırıldığından emin olmanın bir yolu var mı? Yönetilen kodda bir çözümü tercih ederim ama eğer biri değilse PInvoke yapabilirim.
Düzenleme: PID'yi geçmek daha sağlam bir çözüm gibi gözüküyor, ancak merakı hatırlatmak istersek, çocuk süreç benim kodum değilse de kontrolüm olmayan bazı exe'larsa ne olurdu? Öksüz çocuk süreçlerinin yaratılmasına karşı korunmanın bir yolu var mı?
da kontrol dışarı farklı bir yaklaşımla bazı kısa kod için bu cevap: http://stackoverflow.com/a/7189381/177710. – Oliver