2017-08-02 110 views
1

您知道这两个流都是内存流。这两个流都由内存中的字节缓冲区支持,所以有没有使用CopyToAsync vs CopyTo的一点?一个简单的例子:是否有任何理由在两个MemoryStream之间使用CopyToAsync

MemoryStream stream1 = new MemoryStream(); 
MemoryStream stream2 = new MemoryStream(); 
...//do something to add data to stream1 
await stream1.CopyToAsync(stream2); 

回答

2

不,所有MemoryStream上的“异步”方法实际上是同步的。 CopyToAsync和朋友只存在于MemoryStream,因为它们存在于Stream

使用CopyToAsync才有意义,如果一个或另一个流的真的有异步操作,但如果你知道这两个流是MemoryStream,那么你可以调用CopyTo,并获得相同的行为。

+0

谢谢,有道理。 – acarlon

1

嗯,应该已经看过了implementation for MemoryStream前问:

// If destination is a MemoryStream, CopyTo synchronously: 
memStrDest.Write(_buffer, pos, n); 

所以,没有任何意义。

这里会留下问题以防万一它帮助别人。

相关问题