Application.SessionEnding Événement
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Se produit quand l’utilisateur met fin à la session Windows en se déconnectant ou en arrêtant le système d’exploitation.
public:
event System::Windows::SessionEndingCancelEventHandler ^ SessionEnding;
public event System.Windows.SessionEndingCancelEventHandler SessionEnding;
member this.SessionEnding : System.Windows.SessionEndingCancelEventHandler
Public Custom Event SessionEnding As SessionEndingCancelEventHandler
Type d'événement
Exemples
L’exemple suivant montre comment gérer l’événement SessionEnding et autoriser l’utilisateur à l’annuler.
<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
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).