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?你能帮到吗?