像 JsonSerializer 这样的序列化器具有异步版本的方法。 我想澄清一下在什么情况下使用它们。我通常默认使用简单版本的序列化/反序列化,从不关心异步版本。但在某些情况下可能最好使用异步版本。
这里的相关问题是:
如果数据已经在
string
、byte[]
、MemoryStream
或类似的内容中:那么只需使用同步反序列化(等);它会更快(异步机制本身有开销)。如果数据从外部源流入(或流出):考虑异步。
第二个问题可以大致近似为“我在服务器上运行吗?”;客户端和控制台应用程序:通常不会因空闲线程而遭受巨大损失(如果我们忽略 UI 阻塞,这可以通过其他方式避免),而在服务器应用程序上:空闲线程(在挂起的 IO 上被阻塞)会严重限制吞吐量。服务器本质上以更高的并发性运行,而线程是有限且昂贵的资源。