public  void CallWithTimeout(Action<string>  action, int timeoutMilliseconds)
    {
        
        Thread threadToKill = null;
        Action wrappedAction = () =>
        {
            threadToKill = Thread.CurrentThread;
            action(RealUrl);
        };
        IAsyncResult result = wrappedAction.BeginInvoke(null, null);
        if (result.AsyncWaitHandle.WaitOne(timeoutMilliseconds,true))
        {
            wrappedAction.EndInvoke(result);
        }
        else
        {
            threadToKill.Abort();
            throw new TimeoutException();
        }
   
    }  action(RealUrl)  是一个对网页截图的函数,如果打开的网页的截图的时间太长 则会报如上的错误