我现在写了个网站,上面有段C#程序是要连接远程服务器,连接的时候时间会很长,我是想让连接服务器这段代码执行5秒钟之后没有错误的情况下,就直接跳到下面的程序执行,要不这样弄的话,网页打开以后要等很长时间,容易超时,就是下面的程序 我想让这段代码WebVMClone.VMClone.Main(str); 执行5秒钟以后没有错误的情况下执行这句Response.Write("123123123"); 这种效果 程序该怎么弄啊,,朋友们帮帮忙谢谢了
  string[] str = new string[] {   
  "--url","https://116.255.131.165/sdk",//vc 服务网url  
  "--username","administrator",//用户名
  "--password","qwx12!@",//密码
  "--DatacenterName","jstvps",
  "--vmPath","124win2003jc",
  "--CloneName",context.Request.Form["vpsname"]
  ,"--DataStore","124date01"};  WebVMClone.VMClone.Main(str);  Response.Write("123123123");

解决方案 »

  1.   

    WebVMClone.VMClone.Main小弟不才 这是啥。
      

  2.   

    +1js  setTimeout(方法,毫秒) 
      

  3.   

      WebVMClone.VMClone.Main
    这个东西先不管它  是连接服务器的一方法,执行这个方法的时候会很长时间, 我意思就是执行这个方法的时候在5秒中不出错的情况下就调到下一句程序执行,,
      

  4.   

    WebVMClone.VMClone.Main
    这个东西先不管它 是连接服务器的一方法,执行这个方法的时候会很长时间, 我意思就是执行这个方法的时候在5秒中不出错的情况下就直接执行下一句程序,不再执行这个方法了
      

  5.   

    protected void Timer1_Tick(object sender, EventArgs e)
            {
                DateTime dt = System.DateTime.Now;
                if (dt==dt2)
                {
                    try
                {                string[] str = new string[] {   
      "--url","https://116.255.131.165/sdk",//vc 服务网url   
      "--username","administrator",//用户名
      "--password","qwx12!@",//密码
      "--DatacenterName","jstvps",
      "--vmPath","124win2003jc",
      "--CloneName",context.Request.Form["vpsname"]
      ,"--DataStore","124date01"};                WebVMClone.VMClone.Main(str);                Response.Write("123123123");
                }
                catch (Exception)
                {                throw;
                }
                }
            }在页面上放个<asp:Timer ID="Timer1" runat="server" ontick="Timer1_Tick">
            </asp:Timer>控件
      

  6.   

    public DateTime dt2 = System.DateTime.Now.AddSeconds(5);
      

  7.   

    没明白你的意思。你的是怎么触发这写代码执行的。只要把this.Timer1.Enabled=true,
    默认的this.Timer1.Enabled=false
      

  8.   


    您这里定义一个时间变量是什么用出啊 ?        public DateTime dt2 = System.DateTime.Now.AddSeconds(5);
      

  9.   

    dt获取当前时间 所以dt是不变的       
      

  10.   

    大致是这样的逻辑:var handler = new ManualResetEvent(false);
    Exception error = null;
    ThreadPool.QueueUserWorkItem(h =>
    {
        try
        {
            WebVMClone.VMClone.Main(str);
        }
        catch(Exception ex)
        {
            error=ex;
        }
        finally
        {
            handler.Set();
        }
    });
    handler.WaitOne(5000);
    if(error!=null)
        throw error;    //或者在这里处理异常error中的信息;
      

  11.   

    注意要引用 System.Threading 程序集。不要死盯着代码照抄,看懂其逻辑才重要。
      

  12.   

    如果那个WebVMClone.VMClone.Main2秒钟就结束了,比如异常或者其它原因,怎么办?