📄 adapterdetectaction.cs
字号:
namespace Imps.Client.CommLayer.NetworkDetect
{
using Imps.Client.Resource;
using System;
using System.Collections.Generic;
using System.Net.NetworkInformation;
using System.Threading;
public class AdapterDetectAction : DetectAction
{
public AdapterDetectAction()
{
base.Description = "网卡信息";
base.NextStage = NetworkDetectStage.IPEndPoint;
}
public override void BeginDetectAction()
{
ThreadPool.QueueUserWorkItem(new WaitCallback(this.StartDetect), this);
}
public override void CancelDetectAction()
{
}
private void StartDetect(object state)
{
Thread.CurrentThread.Name = "Imps.Client.Pc.NetworkDetect.AdapterDetectAction";
List<DetectResult> details = new List<DetectResult>();
try
{
NetworkInterface[] allNetworkInterfaces = NetworkInterface.GetAllNetworkInterfaces();
int num = 0;
foreach (NetworkInterface interface2 in allNetworkInterfaces)
{
if ((interface2.get_NetworkInterfaceType() != 0x18) && (interface2.get_NetworkInterfaceType() != 1))
{
if (interface2.get_OperationalStatus() == 1)
{
details.Add(new DetectResult(DetectStatus.Passed, interface2.get_Name()));
num++;
}
else
{
details.Add(new DetectResult(DetectStatus.Failed, interface2.get_Name()));
}
}
}
if (num == 0)
{
if (details.get_Count() == 0)
{
details.Add(new DetectResult(DetectStatus.Failed, StringTable.NetworkDetect.NoAdapter));
}
base.CanResume = false;
base.FireDetecFinsihedEvent(this, new DetectEventArgs(false, details));
}
else
{
base.FireDetecFinsihedEvent(this, new DetectEventArgs(true, details));
}
}
catch (PlatformNotSupportedException)
{
details.Add(new DetectResult(DetectStatus.Failed, StringTable.NetworkDetect.PlatformNotSupport));
base.CanResume = false;
base.FireDetecFinsihedEvent(this, new DetectEventArgs(false, details));
}
catch (Exception)
{
details.Add(new DetectResult(DetectStatus.Failed, StringTable.NetworkDetect.ErrorOccour));
base.CanResume = true;
base.FireDetecFinsihedEvent(this, new DetectEventArgs(true, details));
}
}
public override NetworkDetectStage CurrentStage
{
get
{
return NetworkDetectStage.NetworkAdapter;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -