2016年8月25日 星期四

C# WebBrowserReadyState.Complete沒用時,加計時跳出

呼叫timer.timer來計時,時間到強制跳出,
bool timeout = false;//全域
private bool Check_Complete(string keyword ,int timeout_time)
        {
            bool getkeyword = false;
            System.Timers.Timer t = new System.Timers.Timer(timeout_time); // 等多久
            t.Elapsed += new System.Timers.ElapsedEventHandler(check_timeout); //呼叫副程式
            t.AutoReset = false; //设置是执行一次(false)还是一直执行(true);
            t.Enabled = true;
            while (!getkeyword)
            {
                if(timeout)
                {
                    t.Close();
                    timeout = false;
                    return false;
                }
                foreach (HtmlElement he in webBrowser1.Document.All)
                {
                    if (he.OuterText == keyword)
                    {
                        timeout = false;
                        t.Close();
                        getkeyword = true;
                    }
                }
                Application.DoEvents();
            }
            return true;
        }
public void check_timeout(object source, System.Timers.ElapsedEventArgs e)
        {
            timeout = true;
        }

沒有留言:

張貼留言