Skip to content

Instantly share code, notes, and snippets.

@jonnii
Created August 5, 2013 20:21
Show Gist options
  • Save jonnii/6159241 to your computer and use it in GitHub Desktop.
Save jonnii/6159241 to your computer and use it in GitHub Desktop.
public void Request<TRequest, TResponse>(TRequest message, Action<TResponse> onResponse)
where TRequest : ICorrelated
where TResponse : ICorrelated
{
var requester = CreateRequester<TRequest, TResponse>();
requester.Request(message, response =>
{
onResponse(response);
requester.Dispose();
});
}
public Task<TResponse> RequestAsync<TRequest, TResponse>(TRequest message)
where TRequest : ICorrelated
where TResponse : ICorrelated
{
var source = new TaskCompletionSource<TResponse>();
var requester = CreateRequester<TRequest, TResponse>();
requester.Request(message, response =>
{
source.SetResult(response);
requester.Dispose();
});
return source.Task;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment