如何感知网络连接并触发事件

时间:2013-10-10 19:54:28

标签: c# visual-studio-2010

我正在开发一个项目,该项目使用SQL Server Express在笔记本电脑上存储数据,并在连接到网络后同步回网络服务器。

有没有办法感知网络连接然后触发事件?我知道我可以通过定时检查网络连接的计时器来做到这一点,但我希望一旦设备建立连接就运行该事件。

2 个答案:

答案 0 :(得分:7)

当网络可用性发生变化时,您可以注册到NetworkChange.NetworkAvailabilityChanged事件以接收事件

来自MSDN:

  

当网络可用性发生变化时,NetworkChange类会引发NetworkAvailabilityChanged事件。当至少一个网络接口标记为“up”且不是隧道或环回接口时,网络可用。

     

要在NetworkAvailabilityChanged事件发生时让NetworkChange对象调用事件处理方法,您必须将该方法与NetworkAvailabilityChangedEventHandler委托关联,并将此委托添加到此事件。

     

Windows 2000及更高版本支持NetworkAvailabilityChanged事件。

了解更多信息 http://msdn.microsoft.com/en-us/library/system.net.networkinformation.networkchange.networkavailabilitychanged.aspx

答案 1 :(得分:2)

也许您可以尝试使用Windows任务计划程序设置运行应用程序的计划?我知道在Windows 7中你可以这样做,你可以设置一个运行条件:只有当某个网络可用时。我认为这会给你带来很多麻烦。除此之外,您可以尝试: I need a event to detect Internet connect/disconnect

第一个答案也发给你了:

http://msdn.microsoft.com/en-us/library/ee264321(VS.85).aspx