2015-07-12 52 views
1

的MemoryStream的處置在AWS Kinesis Client Library (KCL)有一個sample producer包含下面的代碼:在室壁運動(KCL)C#

for (int j = 0; j < 10; ++j) 
      { 
       PutRecordRequest requestRecord = new PutRecordRequest(); 
       requestRecord.StreamName = myStreamName; 
       requestRecord.Data = new MemoryStream(Encoding.UTF8.GetBytes("testData-" + j)); 
       requestRecord.PartitionKey = "partitionKey-" + j; 
       PutRecordResult putResult = kinesisClient.PutRecord(requestRecord); 
       Console.Error.WriteLine(
        String.Format("Successfully putrecord {0}:\n\t partition key = {1,15}, shard ID = {2}", 
         j, requestRecord.PartitionKey, putResult.ShardId)); 
      } 

爲什麼MemoryStream的離開這樣呢?他們不應該處理這個流?謝謝

回答

1

MemoryStream不需要處理,因爲它不保留到非託管資源。依然處置它是一種好習慣,以便任何一次性資源按照慣例處置。如果這會使代碼變得尷尬,那麼可以不這樣做。這是安全的,而不是代碼味道。