本文整理汇总了C#中IApplication.InvokeAsync方法的典型用法代码示例。如果您正苦于以下问题:C# IApplication.InvokeAsync方法的具体用法?C# IApplication.InvokeAsync怎么用?C# IApplication.InvokeAsync使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IApplication
的用法示例。
在下文中一共展示了IApplication.InvokeAsync方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: InvokeInternal
static IEnumerable<object> InvokeInternal(this ISocket socket, IApplication application, IHttpSupport http)
{
var beginRequest = http.BeginRequest(socket);
yield return beginRequest;
if (beginRequest.IsFaulted)
throw beginRequest.Exception;
IRequest request = beginRequest.Result;
var invoke = application.InvokeAsync(request);
yield return invoke;
if (invoke.IsFaulted)
throw invoke.Exception;
IResponse response = invoke.Result;
yield return http.BeginResponse(socket, response);
foreach (var obj in response.GetBody())
{
var objectToWrite = obj;
if (obj is Task)
{
var task = (obj as Task).AsTaskWithValue();
yield return task;
if (task.IsFaulted)
throw task.Exception;
objectToWrite = task.Result;
}
socket.WriteObject(objectToWrite);
}
// HTTP/1.1 support might only close the connection if client wants to
//Trace.Write("Closed connection.");
socket.Dispose();
}