一般都是用 javascript 操作页面中的控件的啊.

解决方案 »

  1.   

    asp.net默认的模式不支持异步页面,所以你访问服务器时需要阻塞(例如使用 ManualResetEvent.WaitOne/Set 机制)当前线程、等待远程服务器返回。你访问远程服务器的没有同步方法吗?如果有的话,在asp.net程序中调用同步方法就行了。如果没有,可以自己封装一个同步方法。例如异步访问public void SendMessage<T>(object message, Action<T> callback = null, Action<Exception> error = null)
    {
       ....
    }那么可以封装一个同步访问方法public T SendMessageSync<T>(object message)
    {
        var eh = new ManualResetEvent(false);
        T result = default(T);
        Exception ex = null;
        SendMessage<T>(message, r =>
        {
            result = r;
            eh.Set();
        }, x =>
        {
            ex = x;
            eh.Set();
        });
        eh.WaitOne();
        if (ex != null)
            throw ex;
        else
            return result;
    }
      

  2.   

    按某种“理论”来说,你的asp.net程序应该使用“异步页面”技术来处理。但是这也只是技术而已。因为从现实来看,如果你的页面“拖延几秒钟”是极差的体验,而如果你能够保证这种远程访问在1、2秒钟内总有一种解决办法,那就不用死抠技术,就不用异步页面也是可以的。因为个别页面1、2秒钟的延迟不会让asp.net的线程池撑不住的。
      

  3.   

    试过同步,socket在发出请求后等待接收时就死到那里了,这块不会处理
      

  4.   

    点击这个按钮的操作用异步的 ajax ,  网站服务端去socke 用同步的 不就行了 ,换个方式解决问题嘛