Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 如何从CloudBlockBlob.UploadFromFileAsync获取上载进度?_.net_Azure_Azure Storage_Azure Storage Blobs - Fatal编程技术网

.net 如何从CloudBlockBlob.UploadFromFileAsync获取上载进度?

.net 如何从CloudBlockBlob.UploadFromFileAsync获取上载进度?,.net,azure,azure-storage,azure-storage-blobs,.net,Azure,Azure Storage,Azure Storage Blobs,我正在使用CloudBlockBlob对象和UploadFromFileAsync方法将文件上载到blob存储。当这是完整的,我会想打电话给一个服务,然后告诉几个计算机得到我上传的文件。然而,我注意到,当我运行这个程序,然后在Azure门户中检查我的文件时,当它出现时,会有一些延迟。我不知道这是因为门户网站花了一段时间来反映这一点,还是文件实际上还没有出现。这就引出了一个真正的问题,我能用这个方法检查文件的进度吗?如果能把它也输入到进度条中,那就太好了。再进一步研究一下,我注意到该方法返回一个任

我正在使用CloudBlockBlob对象和UploadFromFileAsync方法将文件上载到blob存储。当这是完整的,我会想打电话给一个服务,然后告诉几个计算机得到我上传的文件。然而,我注意到,当我运行这个程序,然后在Azure门户中检查我的文件时,当它出现时,会有一些延迟。我不知道这是因为门户网站花了一段时间来反映这一点,还是文件实际上还没有出现。这就引出了一个真正的问题,我能用这个方法检查文件的进度吗?如果能把它也输入到进度条中,那就太好了。

再进一步研究一下,我注意到该方法返回一个任务,我可以检查任务的完成状态。但是,这并没有给我任何进度指示。

在TPL中,报告进度的方法是通过接口。报告进度的异步方法应提供接受此接口实例的重载

由于该方法没有重载,API也没有公开任何类似的内容,因此我只能得出结论,不支持进度报告


该方法返回的
任务本身将指示操作完成的时间,您应该等待该时间。

有关blob传输进度事件,请检查仍在查找该任务的人员

下面是通过
progressHandler
获取上载进度的示例:

CancellationToken cancellationToken = new CancellationToken();
IProgress<StorageProgress> progressHandler = new Progress<StorageProgress>(
    progress => Console.WriteLine("Progress: {0} bytes transferred", progress.BytesTransferred)
    );

await blob.UploadFromStreamAsync(
    srcStream,
    default(AccessCondition),
    default(BlobRequestOptions),
    default(OperationContext),
    progressHandler,
    cancellationToken
    );
CancellationToken CancellationToken=新的CancellationToken();
IProgress progressHandler=新进度(
progress=>Console.WriteLine(“progress:{0}字节已传输”,progress.ByTestTransfered)
);
等待blob.UploadFromStreamAsync(
srcStream,
默认(访问条件),
默认值(BlobRequestOptions),
默认值(OperationContext),
progressHandler,
取消令牌
);

我想你是那篇文章的作者吧?我以前看过,但我有一个问题,它会显示100%,但从来没有完成。罢工…只是有时需要一段时间,从当它是在100%的时候,改变到当它完成。谢谢你的课,太棒了@K链接将断开。@rahull.,谢谢您的报告。重定向已修复,现在应指向。