Lire en anglais

Partager via


Application.SessionEnding Événement

Définition

Se produit quand l’utilisateur met fin à la session Windows en se déconnectant ou en arrêtant le système d’exploitation.

C#
public event System.Windows.SessionEndingCancelEventHandler SessionEnding;

Type d'événement

Exemples

L’exemple suivant montre comment gérer l’événement SessionEnding et autoriser l’utilisateur à l’annuler.

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;
            }
        }
    }
}

Remarques

Par défaut, une application s’arrête à la fin de la session Windows, ce qui se produit lorsqu’un utilisateur se déconnecte ou s’arrête. Dans ce cas, Windows demande à chaque application ouverte de s’arrêter. Toutefois, il est possible qu’une application ne soit pas prête à s’arrêter lorsque cela se produit. Par exemple, une application peut avoir des données qui sont dans un état incohérent ou au milieu d’une opération de longue durée. Dans ce cas, il peut être souhaitable d’empêcher la fin de la session et peut être plus souhaitable de permettre aux utilisateurs de décider s’il faut ou non laisser la session se terminer.

Vous pouvez détecter quand une session se termine en gérant l’événement SessionEnding . Si une application doit empêcher la session de se terminer, l’argument SessionEndingCancelEventArgs passé au gestionnaire d’événements expose le Cancel sur lequel vous avez défini true (la valeur par défaut est false).

Si SessionEnding n’est pas pris en charge ou est géré sans être annulé, Shutdown est appelé et l’événement Exit est déclenché.

Pour obtenir plus d’informations sur la raison pour laquelle la session se termine, une application peut inspecter ReasonSessionEnding, qui est l’une ReasonSessionEnding des valeurs (ReasonSessionEnding.Logoff et ReasonSessionEnding.Shutdown).

SessionEnding n’est pas déclenché par les applications console.

SessionEnding est déclenché uniquement sur le thread qui crée l’objet Application .

SessionEnding n’est pas déclenché pour les applications de navigateur XAML (XBAPs).

S’applique à

Produit Versions
.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

Voir aussi