如何将指向变量的指针传递给 S3 进度函数回调?

How to pass a pointer to a variable to the S3 progress function callback?

我知道我可以使用与此类似的东西来监视对象下载的进度

using (var response = client.GetObject(request)) 
{ 
    response.WriteObjectProgressEvent += Response_WriteObjectProgressEvent; 
    response.WriteResponseStreamToFile(@"C:\Downloads\file.exe"); 
} 

private static void Response_WriteObjectProgressEvent(object sender, WriteObjectProgressArgs e) 
{ 
    Debug.WriteLine($"Transfered: {e.TransferredBytes}/{e.TotalBytes} - Progress: {e.PercentDone}%"); 
}

不过,我想保存到e.PercentDone值到一个特定的变量中。

如何将指向此变量的指针传递给回调函数?

谢谢

你说得对,当我的问题与 C++ 相关时,提供的示例是 C# 代码。

我终于通过传递定义为

的指针解决了我的问题

int *download_percentage;

以这种方式下载 ProgressCallback():

    transferConfig.downloadProgressCallback =
        [download_percentage](const Aws::Transfer::TransferManager *,
                           const std::shared_ptr<const Aws::Transfer::TransferHandle> &transferHandle) {
            if (download_percentage != NULL) {
                int percentage = *download_percentage;

                if (percentage !=
                    ((int)(((float)transferHandle->GetBytesTransferred() / transferHandle->GetBytesTotalSize()) *
                           100))) {
                    percentage =
                        (int)(((float)transferHandle->GetBytesTransferred() / transferHandle->GetBytesTotalSize()) *
                              100);
                    std::cout << "Download Progress: " << percentage << "%\n";

                    *download_percentage = percentage;
                }
            }
        };