WCF HttpPollingDuplex服务器:异步调用和AsyncCallBack之间的时间

时间:2012-03-02 19:58:42

标签: wcf http polling duplex asynchronous-wcf-call

我想知道当回调方法没有返回任何内容时,是否有人有关于HttpPollingDuplex上异步回调的机制的信息。当以下代码运行时,在TimeSpan span中找到的结果并不完全符合我的预期。

AsyncCall:

IAsyncResult iar = objCallback.BeginUpdate(
                            updateMessage,  
                            OnDeliverComplete, 
                            new Stats() { TimeSent = DateTime.Now, ... }
                         );

的AsyncCallback:

    private void OnDeliverComplete(IAsyncResult iar)
    {
        try
        {
            Stats stats= iar.AsyncState as UpdateInProgresStr;
            if (stats!= null)
            {
                // !!!
                TimeSpan span = DateTime.Now - stats.TimeSent; // <-------
                // !!!
            }
        }
        catch (Exception ex)
        {
            loggingDispatcher.Exception(ex);
        }
    }

起初我认为TimeSpan返回的时间是在Http民意调查之间的内部WCF队列中花费的时间和服务器与服务之间的消息的旅行时间,然后是从客户端到服务的确认的旅行时间。起初,我收到的结果似乎证实了我的预感,因为处理每条消息的时间远远高于AsyncCallback触发的时间。但是,随着客户端的压力,确认时间似乎会增加并超过发送和处理消息的总时间。这使得发送消息和接收确认之间的时间间隔有些神秘。

任何人都可以对此有所了解吗?

0 个答案:

没有答案