Como usar o C # BackgroundWorker para relatar o progresso no código C ++ nativo?
Na minha solução Visual Studio eu tenho interface do usuário implementada em C # e algum código implementado em C ++ nativo.
eu usoClasse BackgroundWorker para implementar o progresso da execução da operação longa.
Como posso usarBackgroundWorker
relatar o progresso do meu código C ++ nativo?
Em outras palavras, como posso reescrever o código C # abaixo para o C ++ nativo e chamar o código C ++ obtido do C #? Se não for possível reescrever o código abaixo diretamente, pode ser bom saber sobre outras soluções equivalentes. Obrigado.
class MyClass
{
public void Calculate(object sender, DoWorkEventArgs e)
{
BackgroundWorker worker = sender as BackgroundWorker;
for (int i = 0; i < StepCount; i++)
{
if (worker.CancellationPending)
{
e.Cancel = true;
break;
}
// code which handles current iteration here
worker.ReportProgress((i + 1) * 100 / StepCount,
"Report progress message");
}
}
}