是否有任何理由在两个MemoryStream之间使用CopyToAsync
问题描述:
您知道这两个流都是内存流。这两个流都由内存中的字节缓冲区支持,所以有没有使用CopyToAsync vs CopyTo的一点?一个简单的例子:是否有任何理由在两个MemoryStream之间使用CopyToAsync
MemoryStream stream1 = new MemoryStream();
MemoryStream stream2 = new MemoryStream();
...//do something to add data to stream1
await stream1.CopyToAsync(stream2);
答
不,所有MemoryStream
上的“异步”方法实际上是同步的。 CopyToAsync
和朋友只存在于MemoryStream
,因为它们存在于Stream
。
使用CopyToAsync
才有意义,如果一个或另一个流的真的有异步操作,但如果你知道这两个流是MemoryStream
,那么你可以调用CopyTo
,并获得相同的行为。
答
嗯,应该已经看过了implementation for MemoryStream前问:
// If destination is a MemoryStream, CopyTo synchronously:
memStrDest.Write(_buffer, pos, n);
所以,没有任何意义。
这里会留下问题以防万一它帮助别人。
谢谢,有道理。 – acarlon