1
내가 핸들러를 위임 사용자 정의 만든 무시했다가 모두있는 경우 너희들이 나를 올바른 하나입니다이 예를 알 수 있도록, 또는 수, 내가 정의 동기 방법을 실행하는 방법에 이제 방법SelfHost DelegatingHandler
Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
입니다 내가 아니라 어떤 교착 상태
1.
protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
{
if (Processor.CanProcess(request))
{
var tsc = new TaskCompletionSource<HttpResponseMessage>(cancellationToken);
tsc.SetResult(Processor.Process(request));
return tsc.Task;
}
return base.SendAsync(request, cancellationToken);
}
2.
012을 피하기 위해, 더 나은 사용 알려 수정protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
{
if (Processor.CanProcess(request))
return Task.Run(() => Processor.Process(request), cancellationToken);
return base.SendAsync(request, cancellationToken);
}
비동기 대기 모드를 사용해야합니다. 그렇지 않으면 그대로 두는 것이 좋습니다.
'Processor.Process'는 초당 얼마나 자주 실행됩니까? 자주 그렇지 않다면 당신이하는 일과 상관없이 가장 편리한 형태를 선택할 수 있습니다. – usr
최악의 시나리오에서는 60ms마다 실행할 수 있으며 동시에 16 개의 요청을 수신 할 수 있습니다 –