C#' da çok yeni oluyorum, bu yüzden sorduğum soru küskün olabilir. Bazen ffmpeg'i çalıştırması gereken bir uygulama geliştiriyorum. Tahmin ettiğiniz gibi, bu ffmpeg süreci, barındırıcı uygulaması kapatıldığında öldürülmelidir. Bu görev için böyle kodu kullanın: (Bu arayüz veya Taskman beraber aracılığıyla - Uygulamalar)C#: Uygulamanın sürecine yakın süreci 'öldürme (görevliyle)
AppDomain.CurrentDomain.ProcessExit += new EventHandler(OnProcessExit);
private void OnProcessExit(object sender, EventArgs e)
{
proc.Kill();
}
Uygulama doğru kapatıldığında bu, gayet iyi çalışıyor. Sorun, programın işleminin (Taskman - Processes ile) öldürülmesi durumunda OnProcessExit olayının tetiklenmeyeceğidir. Bildiğim kadarıyla, öldürme süreci ve kapanış programı eylemleri düşük seviyede aynı değil, ama sanırım, öldürme işlemi ona bir komuttur ve C# araçlarıyla ele alınabilir. Yani, bu durumda çocuk sürecini kapatmak mümkün mü? Bence
[Bu soru] (http://stackoverflow.com/questions/3342941/kill-child-process-when-parent-process-is-killed?rq=1) görüşmeler onların ebeveyn öldürülür. –
Teşekkürler, Scott Miller, [bu] [1] yöntemim benim sorunumu çözmek için gereken her şey. [1]: http://stackoverflow.com/questions/3342941/kill-child-process-when-parent-process-is-killed?rq=1 – JustLogin
Hayır, bu kötü bir fikir. Kullanıcı mantıksız bir şey yaptığında makul bir şey yapmaya çalışmak sadece çaba harcamaktır. Hiç bir fikrin yok * neden * kullanıcı programınızı bu şekilde öldürmeye karar verdi. Ancak, genellikle programınızın hala düzgün çalıştığı için olmadığını varsayıyorsunuz. Ffmpeg'i öldürmek için ne yapmak niyetinde olursanız olun, iyi bir sonuca varacaksınız. İş nesneleri de çözüm değildir, Vista'da kötü bir şekilde kırılmışlardır. Şimdi iki problemin var. –