Multithreading 如何将c#异步任务转换为Unity协程

Multithreading 如何将c#异步任务转换为Unity协程,multithreading,asynchronous,async-await,task,using,Multithreading,Asynchronous,Async Await,Task,Using,我正在Unity中使用protobuf实现双向流式RPC。 并没有反映Unity的C#4.x等价物,所以我认为我需要将其转换为协同程序替代方法。基本上,它是一个订阅,在一段时间内输出服务器响应 using (var call = client.RouteChat()) { var responseReaderTask = Task.Run(async () => { while (await call.ResponseStream.MoveNext()) {

我正在Unity中使用protobuf实现双向流式RPC。 并没有反映Unity的C#4.x等价物,所以我认为我需要将其转换为协同程序替代方法。基本上,它是一个订阅,在一段时间内输出服务器响应

using (var call = client.RouteChat())
{
var responseReaderTask = Task.Run(async () =>
{
    while (await call.ResponseStream.MoveNext())
    {
        var note = call.ResponseStream.Current;
        Console.WriteLine("Received " + note);
    }
});

foreach (RouteNote request in requests)
{
    await call.RequestStream.WriteAsync(request);
}
await call.RequestStream.CompleteAsync();
await responseReaderTask;
}