gpt4 book ai didi

c# - NamedPipeServerStream 和 await 关键字

转载 作者:行者123 更新时间:2023-11-30 14:14:29 26 4
gpt4 key购买 nike

文章C# Named Pipes with Async ,它是为 Async CTP 库 v3.0 编写的,使用的代码不能用 .NET 4.5 编译。具体

await pipe.WaitForConnectionAsync();

var message = await streamReader.ReadToEndAsync();

失败,因为NamedPipeClientStream没有这样的方法.

在 CTP 和 .NET 4.5 中的包含之间,在这方面有什么变化吗?我是否缺少完成这项工作的步骤?

最佳答案

Async CTP 中实现的 *Async 方法是临时扩展方法(即,它们是未添加到实际涉及的类中的扩展方法)。 RTM 将那些 Async 方法“移动”到适用类的实例方法中。我认为“移动”不像复制扩展方法那么容易,并且涉及一些工作/测试/验收。我收集到有些人由于各种原因无法搬家。 NamedPipeServerStream.WaitForConnectionAsync 似乎是其中一种方法。您必须使用 TaskFactory.FromAsync 方法从 BeginWaitForConnection/EndWaitForConnection 对创建一个 Task 对象等待。像这样的东西:

    await Task.Factory.FromAsync(pipe.BeginWaitForConnection,
pipe.EndWaitForConnection, null);
StreamReader reader = new StreamReader(pipe);
await reader.ReadToEndAsync();

关于c# - NamedPipeServerStream 和 await 关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12047430/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com