Auf Englisch lesen

Teilen über


Application.SessionEnding Ereignis

Definition

Tritt ein, wenn ein Benutzer die Windows-Sitzung beendet, indem er sich abmeldet oder das Betriebssystem herunterfährt.

C#
public event System.Windows.SessionEndingCancelEventHandler SessionEnding;

Ereignistyp

Beispiele

Im folgenden Beispiel wird veranschaulicht, wie das SessionEnding Ereignis behandelt und dem Benutzer ermöglicht wird, es abzubrechen.

XAML
<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" />
C#
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;
            }
        }
    }
}

Hinweise

Standardmäßig wird eine Anwendung heruntergefahren, wenn die Windows-Sitzung endet. Dies tritt auf, wenn sich ein Benutzer abmeldet oder herunterfährt. In diesem Fall fordert Windows jede geöffnete Anwendung zum Herunterfahren auf. Es ist jedoch möglich, dass eine Anwendung in diesem Fall möglicherweise nicht zum Herunterfahren bereit ist. Beispielsweise kann eine Anwendung Daten aufweisen, die sich in einem inkonsistenten Zustand oder in der Mitte eines lang andauernden Vorgangs befinden. In diesen Situationen kann es wünschenswert sein, das Beenden der Sitzung zu verhindern, und möglicherweise ist es wünschenswerter, Benutzern die Möglichkeit zu geben, zu entscheiden, ob die Sitzung beendet werden soll oder nicht.

Sie können erkennen, wann eine Sitzung endet, indem Sie das SessionEnding Ereignis behandeln. Wenn eine Anwendung verhindern muss, dass die Sitzung beendet wird, macht das SessionEndingCancelEventArgs Argument, das an den Ereignishandler übergeben wird, den verfügbar, den Cancel Sie auf festgelegt haben true (der Standardwert ist false).

Wenn SessionEnding nicht behandelt wird oder ohne Abbruch behandelt wird, wird aufgerufen, Shutdown und das Exit Ereignis wird ausgelöst.

Um weitere Informationen darüber zu erhalten, warum die Sitzung beendet wird, kann eine Anwendung untersuchen ReasonSessionEnding, was einer der ReasonSessionEnding Werte (ReasonSessionEnding.Logoff und ReasonSessionEnding.Shutdown) ist.

SessionEnding wird nicht von Konsolenanwendungen ausgelöst.

SessionEnding wird nur für den Thread ausgelöst, der das Application -Objekt erstellt.

SessionEnding wird für XAML-Browseranwendungen (XBAPs) nicht ausgelöst.

Gilt für:

Produkt Versionen
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9, 10

Weitere Informationen