2015-07-12 53 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不需要处理,因为它不保留到非托管资源。依然处置它是一种好习惯,以便任何一次性资源按照惯例处置。如果这会使代码变得尴尬,那么可以不这样做。这是安全的,而不是代码味道。