protected async Task StartAsync(string url, Func <string, T> createResponse) { ITwitterRequest createTwitterRequest() { var request = _client.CreateRequest(); request.Query.Url = url; request.Query.HttpMethod = HttpMethod.GET; return(request); } void onTweetReceived(string json) { this.Raise(EventReceived, new StreamEventReceivedArgs(json)); var response = createResponse(json); if (response != null) { this.Raise(TweetReceived, response); } } await _streamResultGenerator.StartAsync(onTweetReceived, createTwitterRequest).ConfigureAwait(false); }