Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.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
C# 如何将指向变量的指针传递给S3进程函数回调?_C#_Amazon S3_Aws Sdk - Fatal编程技术网

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

C# 如何将指向变量的指针传递给S3进程函数回调?,c#,amazon-s3,aws-sdk,C#,Amazon S3,Aws Sdk,我知道我可以使用类似的方法来监视对象下载的进度 using (var response = client.GetObject(request)) { response.WriteObjectProgressEvent += Response_WriteObjectProgressEvent; response.WriteResponseStreamToFile(@"C:\Downloads\file.exe"); } private static void Respo

我知道我可以使用类似的方法来监视对象下载的进度

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*下载百分比

要以这种方式下载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;
                }
            }
        };
transferConfig.downloadProgressCallback=
[下载百分比](const Aws::Transfer::TransferManager*,
const std::共享(ptr和transferHandle){
如果(下载百分比!=NULL){
整数百分比=*下载百分比;
如果(百分比)=
((int)(((float)transferHandle->GetByTestTransferred()/transferHandle->GetByTestTotalSize())*
100))) {
百分比=
(int)(((浮点)transferHandle->GetByTestTransferred()/transferHandle->GetByTestTotalSize())*
100);
STD::CUTTAG:C++还是C?你能帮到吗?