取消上传任务

Cancelling an upload task

我阅读了一些有关 Azure SDK 的资料,要取消任务,您似乎需要传入 cancellation_token

我的上传代码很简单:

azure::storage::cloud_block_blob blockBlob = container.get_block_blob_reference(fileLeaf.wstring());

auto task = blockBlob.upload_from_file_async(fullFilePath);

但是,我上传的某些文件可能非常大,我希望能够取消此操作。如果可能的话,我可能还会使用延续,并且也需要所有这些取消。

我遇到的问题是我看不到任何将 cancellation_token 附加到任务的方法。

有什么指点吗?

a sample code using PPL library,我参考了它并更改了使用C++ REST SDK中的PPLX库取消任务的代码,用于C++的Azure存储SDK,请尝试下面的代码。

/* Declare a cancellation_token_source and get the cancellation_token, 
 * please see http://microsoft.github.io/cpprestsdk/classpplx_1_1cancellation__token__source.html
*/
#include <pplxtasks.h>
cancellation_token_source cts;
auto token = cts.get_token();

//Pass the cancellation_toke to task via then method, please see https://msdn.microsoft.com/en-us/library/jj987787.aspx
task.then([]{}, token).wait();

// Cancel the task
cts.cancel();

希望对您有所帮助。