Nasıl uygulama sonlandırıldığında algılamak için?
Bu benim initial question takip ve benim bulgular mevcut ve düzeltmeleri, fikirler ve anlayışlar için sormak istiyorum. Benim bulgular (ya da daha doğrusu yorumlar) önceki soruma insanların cevaplara göre şu Web sitesini ziyaret okuyarak gel .NET 3.5 dokümantasyon ve hata ayıklama .NET 3.5 kod. Bu uygulama sonlandırıldığında tespit etmek için nasıl merak ediyorum benim gibi birisi için değerli olacaktır umarım.
Olaylar:
System.AppDomain.CurrentDomain.ProcessExit
: işlem çıkar, örneğin varsayılan sonraAppDomain
ve her şey kaldırılmış [Toplam yürütme süresi sadece 3 saniye ile sınırlıdır!]. ne zaman kaldırdı WPF için,System.Windows.Application.Exit
kullanın. Windows Formları için, ana yöntemApplication.Run(...)
sonra kodu çalıştırın.System.AppDomain.CurrentDomain.DomainUnload
: büyüttüAppDomain
varsayılan dışındaAppDomain
kaldırır birim test çerçeveler (MbUnit TestDriven.NET ile) ders çalışırken, örneğin.Eğer varsayılan
AppDomain
: kullanılırsa () herhangi bir iş parçacığı herhangi bir özel durum, 9 ** iplik başladı. ne olursa olsun ortaya çıkanSystem.AppDomain.CurrentDomain.UnhandledException
: Bu, bu-tüm yakalamak tüm işlenmemiş özel durumlar için kullanılabilir anlamına gelir.System.Windows.Application.Exit
: WPF uygulama (11* *varsayılan yani) çıkar incelikle. ne zaman kaldırdıSystem.Windows.Application.OnExit
yararlanmak için geçersiz kılar.(C yıkıcılar#) sonlandırıcı: çöp toplayıcı yönetilmeyen kaynakları serbest bırakır zaman çalıştırın. [Toplam yürütme zamanı sınırlı!].
Olay sırası:
WPF uygulama: zarif çıkın
System.Windows.Application.Exit
System.AppDomain.CurrentDomain.ProcessExit
- Sonlandırıcı
WPF uygulama: işlenmeyen bir özel durum
System.AppDomain.CurrentDomain.UnhandledException
MbUnit TestDriven.NET içeride çalışan: geçti test (zarif çıkış)
System.AppDomain.CurrentDomain.DomainUnload
- Sonlandırıcı
MbUnit TestDriven.NET içeride çalışan: başarısız test (işlenmemiş özel durumlar MbUnit tarafından yönetilir)
AppDomain.CurrentDomain.DomainUnload
- Sonlandırıcı
Soru:
- Benim yorumların bulguları doğru/?
- Ben daha fazla ayrıntı biliyor musun sol? E. g. toplam nedir sonlandırıcı için yürütme zaman?
- Diğer etkinlikler /biliyor musunuz ben farkında fikirler?
- Hangi olaylar ve hangi sırada diğer uygulamalar gündeme alıyorlar, örneğin, Windows Forms, Web Servis, ASP.NET web sitesi vs. var mı?
CEVAP
Ssg31415926 cevap/soru (bu soru biraz ters) tarafından istendiğinde, kullanıcı oturumu kapattığında veya kapatır zaman zaman denir Application.SessionEnding var. Exit olayından önce denir.
Nasıl bir eleman dışında bir tıklama a...
Nasıl bir uygulama veya bir işlemin as...
Benim C sunucusunun IP adresini almak ...
Nasıl iOS tamamen C uygulama yazmak iç...
Nasıl bir Noel Ağacı algılamak için?...