Share via


Application.SessionEnding Kejadian

Definisi

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).

Berlaku untuk

Lihat juga