Application.SessionEnding Kejadian
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Terjadi ketika pengguna mengakhiri sesi Windows dengan log keluar atau mematikan sistem operasi.
public:
event System::Windows::SessionEndingCancelEventHandler ^ SessionEnding;
public event System.Windows.SessionEndingCancelEventHandler SessionEnding;
member this.SessionEnding : System.Windows.SessionEndingCancelEventHandler
Public Custom Event SessionEnding As SessionEndingCancelEventHandler
Jenis Acara
Contoh
Contoh berikut menunjukkan cara menangani SessionEnding peristiwa dan memungkinkan pengguna membatalkannya.
<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
Keterangan
Secara default, aplikasi dimatikan ketika sesi Windows berakhir, yang terjadi saat pengguna keluar atau dimatikan. Ketika ini terjadi, Windows meminta setiap aplikasi yang terbuka untuk dimatikan. Namun, ada kemungkinan bahwa aplikasi mungkin tidak siap untuk dimatikan ketika ini terjadi. Misalnya, aplikasi mungkin memiliki data yang dalam keadaan tidak konsisten, atau di tengah operasi yang berjalan lama. Dalam situasi ini, mungkin diinginkan untuk mencegah sesi berakhir, dan mungkin lebih diinginkan untuk memungkinkan pengguna opsi untuk memutuskan apakah sesi berakhir atau tidak.
Anda dapat mendeteksi kapan sesi berakhir dengan menangani SessionEnding peristiwa. Jika aplikasi perlu mencegah sesi berakhir, SessionEndingCancelEventArgs argumen yang diteruskan ke penanganan aktivitas mengekspos Cancel yang Anda atur ke true
(nilai defaultnya adalah false
).
Jika SessionEnding tidak tertangani, atau ditangani tanpa dibatalkan, Shutdown dipanggil dan Exit acara dinaikkan.
Untuk mendapatkan informasi selengkapnya tentang mengapa sesi berakhir, aplikasi dapat memeriksa ReasonSessionEnding, yang merupakan salah ReasonSessionEnding satu nilai (ReasonSessionEnding.Logoff dan ReasonSessionEnding.Shutdown).
SessionEnding tidak dinaikkan oleh aplikasi konsol.
SessionEnding hanya dinaikkan pada utas Application yang membuat objek .
SessionEnding tidak dinaikkan untuk aplikasi browser XAML (XBAP).