Application.SessionEnding Olay

Tanım

Kullanıcı, işletim sistemini kapatarak veya 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 örnekte, olayın nasıl işleneceğini SessionEnding ve kullanıcının olayı iptal etmesine nasıl izin verilip verilip ve edilmeyği gösterilmektedir.

<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, Windows oturumu sona erdiğinde bir uygulama kapanır ve bu da kullanıcı oturumu kapattığında veya kapattığında gerçekleşir. Bu durumda, Windows her açık 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 oturumun SessionEnding 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, ayarladığınız Cancel değeri (varsayılan değerdirtrue) kullanıma sunarfalse.

İş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 , ( ve ReasonSessionEnding) değerlerindenReasonSessionEnding biri ReasonSessionEnding.Logoff olan öğesini inceleyebilirReasonSessionEnding.Shutdown.

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' ler) için tetiklenmez.

Şunlara uygulanır

Ayrıca bkz.