织梦网站导入链接怎么做,学习做网页的网站,信息流优化师是干什么的,做网上商城网站设计上次发了一个文章获取windows网络状态#xff0c;判断是否可以访问互联网。传送门#xff1a;获取本机网络状态
这次我们监听网络状态切换#xff0c;具体代码如下#xff1a;
public class WindowsNetworkHelper
{private static Actionbool? _NetworkStatusCh…上次发了一个文章获取windows网络状态判断是否可以访问互联网。传送门获取本机网络状态
这次我们监听网络状态切换具体代码如下
public class WindowsNetworkHelper
{private static Actionbool? _NetworkStatusChangedCallback;/// summary/// 检查当前网络是否可访问互联网、并设置网络状态变更回调/// /summary/// param namenetworkStatusChangedCallback/param/// returnstrue-可访问互联网false-不可访问互联网/returnspublic static bool CheckInternetAccessAndSetNetworkStatusChangedCallback(Actionbool 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});}}
}
从联网到断开网络、再连上的效果