2017-08-02 114 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); 

所以,沒有任何意義。

這裏會留下問題以防萬一它幫助別人。

相關問題