在Async Callback函数中配置MemoryStream

时间:2014-03-01 21:48:14

标签: c# .net asynchronous amazon-s3 memorystream

我正在使用AWS S3异步上传功能将文件上传到S3。

tu.BeginUpload(ur, new AsyncCallback(FinishedAsyncUpload),ms);

ms =内存流

tu.InputStream = ms

我的问题是我想在文件上传后处理Stream。我创建了一个名为FinishedAsyncUpload的回调函数。我还传递了MemoryStream(ms)并将其置于此函数中。

 protected void FinishedAsyncUpload(IAsyncResult result)
    {
        ((MemoryStream)result.AsyncState).Dispose();
    }

我的问题是,当我尝试在回调函数中处理内存流时,我看到该对象不包含任何数据并要求长度抛出(System.objectDisposedException)。

如何在上传文件后处理memoryStream?

1 个答案:

答案 0 :(得分:1)

我确实不熟悉AWS API,但通常仅在已经处置的对象上调用Dispose()时抛出System.ObjectDisposedException。因此,可能是AWS API正在为您处理已处理的流。

From MSDN for reference

  

ObjectDisposedException Class

     

对已处置对象执行操作时引发的异常。