C#中的静态事件处理程序

时间:2011-04-03 17:02:52

标签: c# silverlight

我有一个Silverlight应用程序。我想在我的应用程序中跟踪某人是在线还是离线。因此,我想我会在App.xaml.cs文件中确定。为了实现这一目标,我添加了以下代码:

internal static bool IsOnline = false;

public static event EventHandler NetworkAddress_Changed;
private static void NetworkChange_NetworkAddressChanged(object sender, EventArgs e)
{
  IsOnline = NetworkInterface.GetIsNetworkAvailable();
  if (NetworkAddress_Changed != null)
    NetworkAddress_Changed(null, EventArgs.Empty);
}

我希望我的应用程序中的页面可以绑定到此事件处理程序并相应地做出响应并检查App.IsOnline。但是,我不知道如何正确地连接它。在App.xaml.cs的启动事件处理程序中,我有以下代码:

NetworkChange.NetworkAddressChanged += new NetworkAddressChangedEventHandler(NetworkChange_NetworkAddressChanged);

不幸的是,NetworkChange_NetworkAddressChanged事件处理程序永远不会被调用。我正在尝试做什么?如果是这样,怎么样?

1 个答案:

答案 0 :(得分:2)

只是声明一个事件是不够的,必须有代码实际上引发事件。看起来你尝试了一些东西,结果又发生了一件事。还不够好。

该代码很难获得,NetworkInterface类本身没有任何事件。您需要使用计时器并定期调用GetIsNetworkAvailable()。现在,您可以在返回值更改时触发事件。

相关问题