如何在C#中检查我的互联网是不是超时[重复]
Posted
技术标签:
【中文标题】如何在C#中检查我的互联网是不是超时[重复]【英文标题】:How to check if my internet has timed out or not in C# [duplicate]如何在C#中检查我的互联网是否超时[重复] 【发布时间】:2019-12-23 01:28:16 【问题描述】:我已经在 Visual Studio 的 Windows 窗体应用程序中编写了一个应用程序,并且我已经在我的窗体中设置了一个计时器,它将每隔 1 秒(1000 毫秒)检查用户是否可以访问互联网,如果他/她没有访问权限,会弹出一个表单并显示用户无权访问互联网。这曾经工作得很好,直到我发现即使互联网显示超时也会弹出表单,尽管我想检查用户是否完全失去了对互联网的访问权限。我决定研究另一种算法,我希望计时器检查互联网是否连续出现 5 次超时,如果是,则会弹出一个向用户显示他们无权访问互联网的表单。关于上述计划的任何具体想法? 这是我的代码,它显示用户是否可以访问互联网。 * LIC 是显示用户无权访问互联网的表格* 类中的方法
public static bool Check_Internet_For_Acceptation()
if (Connections.InternetConnection("google.com") == false)
return false;
else
return true;
你可以看到我在 timer_Tick 中输入的代码
private void TimerCheckInternetConnection_Tick(object sender, EventArgs e)
#region Check whether the users have internet connection or not
if (Components.Check_Internet_For_Acceptation() == false)
if (LIC.Visible)
LIC.Show();
return;
else
LIC.ShowDialog();
TimerCheckInternetConnection.Enabled = false;
#endregion
【问题讨论】:
这能回答你的问题吗? What is the best way to check for Internet connectivity using .NET? @Mikael 我相信它最终比我的要好。感谢您的宝贵帮助 @AliShahbazi 检查的逻辑更好,我实际上使用相同的逻辑但它不会解决检查5次。您可以在我提供的代码中使用此逻辑。重试 5 次。 @AshkanMobayenKhiabani 谢谢一百万。我可能会使用您建议的代码。 @AliShahbazi 不客气。 【参考方案1】:可以返回更多状态,而不是返回真假:
public enum Status
Unknown,
Connected,
NoConnection
public static int retries = 0;
public static Status Check_Internet_For_Acceptation()
if (Connections.InternetConnection("google.com") == false)
if(retries >=5)
return Status.NoConnection;
else
retries++; return Status.Unknown;
else
return status.Connected;
在你的计时器中:
private void TimerCheckInternetConnection_Tick(object sender, EventArgs e)
#region Check whether the users have internet connection or not
if (Components.Check_Internet_For_Acceptation() == Status.NoConnection)
// your logic for no connection
else if(Components.Check_Internet_For_Acceptation() == Status.Connected)
//your logic for connected
//else status is unknown and nothing will happen till it is connected or no connection
TimerCheckInternetConnection.Enabled = false;
#endregion
【讨论】:
以上是关于如何在C#中检查我的互联网是不是超时[重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何在javascript中检查我的任何文本框是不是为空[重复]
如何在 android 中检查我的 android 设备是不是有互联网连接? [复制]
如何从文本框(windows窗体)检查主键是不是存在于我的数据库中,c#