SORU
3 EYLÜL 2009, PERŞEMBE


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 sonra AppDomain 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öntem Application.Run(...) sonra kodu çalıştırın.

  • System.AppDomain.CurrentDomain.DomainUnload: büyüttü AppDomain varsayılan dışında AppDomain 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 çıkan System.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

  1. System.Windows.Application.Exit
  2. System.AppDomain.CurrentDomain.ProcessExit
  3. Sonlandırıcı

WPF uygulama: işlenmeyen bir özel durum

  1. System.AppDomain.CurrentDomain.UnhandledException

MbUnit TestDriven.NET içeride çalışan: geçti test (zarif çıkış)

  1. System.AppDomain.CurrentDomain.DomainUnload
  2. Sonlandırıcı

MbUnit TestDriven.NET içeride çalışan: başarısız test (işlenmemiş özel durumlar MbUnit tarafından yönetilir)

  1. AppDomain.CurrentDomain.DomainUnload
  2. 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
8 EYLÜL 2009, Salı


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.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Eric Anthony

    Eric Anthony

    13 AĞUSTOS 2011
  • Gavin Hoey

    Gavin Hoey

    21 Aralık 2007
  • UKF

    UKF

    2 Aralık 2009