0

如何SessionSwitch使用 C# 从 Windows 应用程序中的事件调用方法?需要使用委托吗?请帮助提供示例代码。

4

2 回答 2

2

像这样:

SystemEvents.SessionSwitch += HandleSessionSwitch;

...

private static void HandleSessionSwitch(object sender, Microsoft.Win32.SessionSwitchEventArgs e)
{
    // do something
}

注意:当您的应用程序关闭或可能导致内存泄漏时,您应该取消订阅此事件(如MSDN 上的文档中所述)。

于 2012-09-06T07:17:19.813 回答
1

你必须处理Microsoft.Win32.SystemEvents.SessionSwitch事件。请注意,处理程序方法必须是static

SystemEvents.SessionSwitch += new SessionSwitchEventHandler(SystemEvents_SessionSwitch);
[...]
static void SystemEvents_SessionSwitch(object sender, SessionSwitchEventArgs e)
{
    // your code goes here
}

或者,像往常一样,一个 lambda 表达式会做:

SystemEvents.SessionSwitch += (sender, e) => { /* your code*/ };
于 2012-09-06T07:25:21.263 回答