2011-05-28 52 views
4

我为Silverlight实现了我自己的NetworkStream端口,它只允许异步调用。
我想读,我从一台服务器,所以我想我会用JSON.NET JsonTextReader所以我结束了下面的代码得到一些JSON-RPC消息:如何使用JSON.NET的JsonTextReader异步读取NetworkStream?

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

我的问题是,它会尝试执行一个同步操作,而该操作只会抛出UnsupportedException
是否有异步StreamReader,我可以为JsonTextReader提供?
我应该采取另一种方法吗?

回答

2

我认为你应该。我不认为你可以强制JsonTextReader使用异步方法,但你可以修改用于获取数据异步行为的整个方法。另外,使用

using(var io = new StreamReader()) 
{ 
    io.Read(); 
} 

语法。

+0

我知道我应该使用'using'语法。这与问题无关。不管怎么说,还是要谢谢你。 – 2012-03-08 08:57:05