コード例 #1
0
        public IAsyncResult BeginMessageReceive( string endpoint, AsyncCallback callback, object state )
        {
            SqlMessageAsyncResult result = new SqlMessageAsyncResult(callback, state );

            _endpoints.AddRequest( endpoint, result );

            if ( _timer == null )
                _timer = new Timer( new TimerCallback( OnTimerTick ), null, 0, INTERVAL );

            _endpoints.DispatchMessages( endpoint );

            return result;
        }
コード例 #2
0
            public void AddRequest( string endpoint, SqlMessageAsyncResult result )
            {
                lock ( _endpoints )
                {
                    if ( _endpoints[ endpoint ] == null )
                        _endpoints[ endpoint ] = new EndpointEntry( );

                    EndpointEntry e = ( EndpointEntry )_endpoints[ endpoint ];

                    e.OutstandingRequests.Enqueue( result );
                }
            }