Application.SessionEnding Olay
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.
Kullanıcı, oturumu kapatarak veya işletim sistemini kapatarak Windows oturumunu sonlandırdığında gerçekleşir.
public:
event System::Windows::SessionEndingCancelEventHandler ^ SessionEnding;
public event System.Windows.SessionEndingCancelEventHandler SessionEnding;
member this.SessionEnding : System.Windows.SessionEndingCancelEventHandler
Public Custom Event SessionEnding As SessionEndingCancelEventHandler
Olay Türü
Örnekler
Aşağıdaki örnek, olayın nasıl işlenip SessionEnding kullanıcının iptaline izin verilip ve edilmeyebilmesini gösterir.
<Application
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="SDKSample.App"
StartupUri="MainWindow.xaml"
SessionEnding="App_SessionEnding" />
using System.Windows;
namespace SDKSample
{
public partial class App : Application
{
void App_SessionEnding(object sender, SessionEndingCancelEventArgs e)
{
// Ask the user if they want to allow the session to end
string msg = string.Format("{0}. End session?", e.ReasonSessionEnding);
MessageBoxResult result = MessageBox.Show(msg, "Session Ending", MessageBoxButton.YesNo);
// End session, if specified
if (result == MessageBoxResult.No)
{
e.Cancel = true;
}
}
}
}
Imports System.Windows
Namespace SDKSample
Partial Public Class App
Inherits Application
Private Sub App_SessionEnding(ByVal sender As Object, ByVal e As SessionEndingCancelEventArgs)
' Ask the user if they want to allow the session to end
Dim msg As String = String.Format("{0}. End session?", e.ReasonSessionEnding)
Dim result As MessageBoxResult = MessageBox.Show(msg, "Session Ending", MessageBoxButton.YesNo)
' End session, if specified
If result = MessageBoxResult.No Then
e.Cancel = True
End If
End Sub
End Class
End Namespace
Açıklamalar
Varsayılan olarak, bir kullanıcı oturumu kapattığında veya kapattığında oluşan Windows oturumu sona erdiğinde uygulama kapanır. Bu durumda, Windows açık olan her uygulamanın kapatılmasını ister. Ancak, bu durum oluştuğunda bir uygulama kapanmaya hazır olmayabilir. Örneğin, bir uygulama tutarsız durumda veya uzun süre çalışan bir işlemin ortasında olan verilere sahip olabilir. Bu gibi durumlarda, oturumun sona ermesini önlemek ve kullanıcıların oturumun bitmesine izin verip vermemeye karar verme seçeneğine izin vermek daha cazip olabilir.
Olayı işleyerek SessionEnding oturumun ne zaman bittiğini algılayabilirsiniz. Bir uygulamanın oturumun sona ermesini engellemesi gerekiyorsa, SessionEndingCancelEventArgs olay işleyicisine geçirilen bağımsız değişken olarak ayarladığınız true
öğesini kullanıma sunar Cancel (varsayılan değer olurfalse
).
İşlenmemişse veya iptal edilmeden işlenirse SessionEnding çağrılır Shutdown ve Exit olay tetiklenir.
Oturumun neden sona erdiği hakkında daha fazla bilgi edinmek için, bir uygulama , (ReasonSessionEnding.Logoff ve ReasonSessionEnding.Shutdown) değerlerinden biri ReasonSessionEnding olan öğesini inceleyebilirReasonSessionEnding.
SessionEnding konsol uygulamaları tarafından tetiklenmez.
SessionEnding yalnızca nesnesini oluşturan iş parçacığında Application oluşturulur.
SessionEnding XAML tarayıcı uygulamaları (XBAP) için tetiklenmez.