Application.SessionEnding Gebeurtenis
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Treedt op wanneer de gebruiker de Windows sessie beëindigt door het besturingssysteem uit te loggen of uit te schakelen.
public:
event System::Windows::SessionEndingCancelEventHandler ^ SessionEnding;
public event System.Windows.SessionEndingCancelEventHandler SessionEnding;
member this.SessionEnding : System.Windows.SessionEndingCancelEventHandler
Public Custom Event SessionEnding As SessionEndingCancelEventHandler
Gebeurtenistype
Voorbeelden
In het volgende voorbeeld ziet u hoe u de SessionEnding gebeurtenis afhandelt en de gebruiker toestaat deze te annuleren.
<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
Opmerkingen
Standaard wordt een toepassing afgesloten wanneer de Windows sessie eindigt, wat gebeurt wanneer een gebruiker zich afmeldt of afsluit. Als dit gebeurt, vraagt Windows elke geopende toepassing om af te sluiten. Het is echter mogelijk dat een toepassing niet gereed is om af te sluiten wanneer dit gebeurt. Een toepassing kan bijvoorbeeld gegevens bevatten die een inconsistente status hebben of in het midden van een langlopende bewerking. In deze situaties kan het wenselijk zijn om te voorkomen dat de sessie wordt beëindigd en kan het wenselijker zijn om gebruikers de mogelijkheid te geven om te bepalen of de sessie al dan niet mag worden beëindigd.
U kunt detecteren wanneer een sessie eindigt door de SessionEnding gebeurtenis te verwerken. Als een toepassing moet voorkomen dat de sessie wordt beëindigd, wordt het SessionEndingCancelEventArgs argument dat wordt doorgegeven aan de gebeurtenis-handler de Cancel waarde die u hebt ingesteld true (de standaardwaarde is false).
Als SessionEnding deze niet is verwerkt of wordt verwerkt zonder te worden geannuleerd, Shutdown wordt deze aangeroepen en wordt de Exit gebeurtenis gegenereerd.
Voor meer informatie over waarom de sessie wordt beëindigd, kan een toepassing een van de ReasonSessionEnding waarden (ReasonSessionEndingenReasonSessionEnding.Logoff) inspecterenReasonSessionEnding.Shutdown.
SessionEnding wordt niet gegenereerd door consoletoepassingen.
SessionEnding wordt alleen gegenereerd op de thread waarmee het Application object wordt gemaakt.
SessionEnding wordt niet gegenereerd voor XAML-browsertoepassingen (XBAPs).