如何判断一个程序是不是超时??

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何判断一个程序是不是超时??相关的知识,希望对你有一定的参考价值。

象我要写一个代码 代码执行的时间限制不能超过1秒,那我应该符合来判断我写的代码有没超时呢?象代码执行时间限时1秒我写这样一个代码:#include<stdio.h>int main() int i,j; __int64 a;for(i=0;i<1000000) for(j=0;j<1000000;j++) printf("***");printf("\n");return 0; 那这代码执行完要多少时间呢,是否会超过1秒呢?(我只举个列子,在没写出代码时, 在我想怎么写代码时,如果我打算这么写,我应该如何来判断我如果这样写代码,代码会不会超时呢???)

参考技术A 有一个函数,叫GetTickCount,获取程序运行的时间 如果你想连续输出"***"一秒中,就可以这么写: #include <windows.h>#include <stdio.h> int main()unsigned int uiStartTime=GetTickCount();//获取当前程序运行毫秒数while(GetTickCount() - uiStartTime < 1000)//判断此时程序运行毫秒数,减开始时的毫秒数,1秒内的话就输出 printf("***"); printf("\n");//1秒过后return 0;

如何在C#中检查我的互联网是不是超时[重复]

【中文标题】如何在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
    

【讨论】:

以上是关于如何判断一个程序是不是超时??的主要内容,如果未能解决你的问题,请参考以下文章

易语言外部判断程序超时防卡住

如何使用selenium webdriver来判断一个网页加载完毕

如何在C#中检查我的互联网是不是超时[重复]

linux服务器上通过脚本判断ssh服务是不是正常

2019 ICPC 南昌网络赛 - Subsequence (子串判断,预处理,超时)

如何判断 HttpClient 何时超时?