2015-07-12 3 views
1

В AWS Kinesis Client Library (KCL) есть sample producer, который содержит следующий код:Располагая MemoryStream в Kinesis (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 не нужно удалять, потому что он не удерживается на неуправляемых ресурсах. Хорошая привычка по-прежнему распоряжаться им только для того, чтобы любой располагаемый ресурс располагался по соглашению. Это нормально, если это не сделает код неудобным. Это безопасно, а не запах кода.