如何使用JSON.NET的JsonTextReader异步从NetworkStream读取数据?

5

我为Silverlight实现了自己的NetworkStream端口,它只允许异步调用。
我想阅读从服务器接收到的一些JSON-RPC消息,所以我决定使用JSON.NET JsonTextReader,因此我的代码如下:

reader = new JsonTextReader(new StreamReader(new NetworkStream(new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp))));  
// ...
reader.Read();  

我的问题是它会尝试执行同步操作,结果只会抛出UnsupportedException异常。
是否有一个异步的StreamReader可以向其中输入JsonTextReader
我应该采取另一种方法吗?

1个回答

2
我认为你应该这样做。我不认为你可以强制JsonTextReader使用异步方法,但你可以修改整个获取数据的方法以异步方式运行。另外,请使用。
using(var io = new StreamReader())
{ 
    io.Read(); 
} 

语法。


1
我知道应该使用“using”语法。但这与问题无关。无论如何,谢谢。 - the_drow

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接