您的位置:首页 > 房产 > 建筑 > 深圳网站维护制作_开发网站定制_站长工具的网址_哪家培训机构学校好

深圳网站维护制作_开发网站定制_站长工具的网址_哪家培训机构学校好

2024/12/23 10:21:52 来源:https://blog.csdn.net/Yuanhuanzhang/article/details/142634096  浏览:    关键词:深圳网站维护制作_开发网站定制_站长工具的网址_哪家培训机构学校好
深圳网站维护制作_开发网站定制_站长工具的网址_哪家培训机构学校好

上次发了一个文章获取windows网络状态,判断是否可以访问互联网。传送门:获取本机网络状态

这次我们监听网络状态切换,具体代码如下:

public class WindowsNetworkHelper
{private static Action<bool>? _NetworkStatusChangedCallback;/// <summary>/// 检查当前网络是否可访问互联网、并设置网络状态变更回调/// </summary>/// <param name="networkStatusChangedCallback"></param>/// <returns>true-可访问互联网;false-不可访问互联网</returns>public static bool CheckInternetAccessAndSetNetworkStatusChangedCallback(Action<bool> networkStatusChangedCallback){//幅值_NetworkStatusChangedCallback = networkStatusChangedCallback;//注册网络状态变更事件NetworkInformation.NetworkStatusChanged -= NetworkInformation_NetworkStatusChanged;NetworkInformation.NetworkStatusChanged += NetworkInformation_NetworkStatusChanged;//返回当前网络状态return CheckInternetAccess();}private static void NetworkInformation_NetworkStatusChanged(object sender){//网络状态变化,获取一次当前网络状态var bInternetAccess = CheckInternetAccess();//触发回调,把网络状态作为参数传入_NetworkStatusChangedCallback?.Invoke(bInternetAccess);}public static bool CheckInternetAccess(){var connectProfile = NetworkInformation.GetInternetConnectionProfile();if (null == connectProfile) return false;var networkLevel = connectProfile.GetNetworkConnectivityLevel();if (networkLevel == NetworkConnectivityLevel.InternetAccess)return true;elsereturn false;}
}

调用方式:

using System;
using System.Diagnostics;
using System.Management;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Threading;
using Windows.Networking.Connectivity;namespace ConsoleApp3
{internal class Program{private static void Main(string[] args){var ret = WindowsNetworkHelper.CheckInternetAccessAndSetNetworkStatusChangedCallback(NewtworkStatusChanged);Console.WriteLine($"宜家网络状态是否可访问互联网:{ret}");Console.ReadLine();}private static void NewtworkStatusChanged(bool sender){Console.WriteLine($"当前是否可访问互联网:{sender},是否后台线程={Thread.CurrentThread.IsBackground}");}}
}

从联网到断开网络、再连上的效果:

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com