public IAsyncResult BeginProcessRequest(HttpContext context, AsyncCallback cb, object extraData) { string subscriberId = context.Request.QueryString["SubscriberId"]; Subscriber subscriber = SubscriberStorage.Instance.GetSubscriber(subscriberId); DateTime startTime = DateTime.Now; DummyAsyncResult asyncResult = new DummyAsyncResult(cb); EventHandler messagePublished = null; messagePublished = (s, e) => { subscriber.MessagePublished -= messagePublished; WriteResponse(context, subscriber.GetMessages(startTime)); asyncResult.CompleteRequest(); }; subscriber.MessagePublished += messagePublished; return asyncResult; }
public IAsyncResult BeginProcessRequest(HttpContext context, AsyncCallback cb, object extraData) { string subscriberId = context.Request.QueryString["SubscriberId"]; Subscriber subscriber = SubscriberStorage.Instance.GetSubscriber(subscriberId); DateTime startTime = DateTime.Now; DummyAsyncResult asyncResult = new DummyAsyncResult(cb); EventHandler messagePublished = null; messagePublished = (s, e) => { subscriber.MessagePublished -= messagePublished; WriteResponse(context, subscriber.GetMessages(startTime)); asyncResult.CompleteRequest(); }; subscriber.MessagePublished += messagePublished; return(asyncResult); }