NetworkAvailabilityChanged 无法与 mono 配合使用

NetworkAvailabilityChanged 无法与 mono 配合使用

我有一个小程序是用VB.NET编写的,用.NET4编译的,在win7上运行,拔掉网线后,发生事件,在Ubuntu V12.10和mono上运行该程序,拔掉网线后没有任何反应?

有人有什么建议或解决方案吗?

我使用 VB.Net 2012 中的 applicationevents.vb 表单和触发器:

Private Sub MyApplication_NetworkChange() 处理 Me.NetworkAvailabilityChanged

非常感谢。

答案1

从 vbforums 来看,有两个可能的答案,杰米西尔欣尼有人说

我并不是 100% 确定,但我认为 NetworkAvailabilityChanged 事件可能是 NetworkChange.NetworkAvailabilityChanged 事件的包装器。该事件的文档说明:

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

假设您至少有一个非隧道或环回网络接口标记为“启动”,即使您拔掉网线。

另一个

我的猜测是,它在底层使用了 Windows 特定的 API,而这种 API 在 Linux 上不可用,并且没有类似物,或者至少在 Mono 中尚未实现。

还有这个问题StackOverflow 中仍然没有答案。我正在阅读源代码mono,试图弄清楚这个问题。虽然它有一个LinuxNetworkChange ()功能,但我没有看到问题是什么(而且我不太熟悉 mono)。

无论如何,既然你没有说程序触发了错误,那么可能是它没有捕获错误,或者 mono 根本没有监听错误。更强大的搜索还在后面。

相关内容