Многопоточность -проблема backgroundworker
Мы используем следующий код.
В базовой функции (onfinishes), если я изменю JobSummaryobj.filename, иногда обновленное значение filename не передается в launchRequest. Может кто-нибудь посоветовать, что делать?
internal virtual onfinishes(object sender, EventArgs<batchjobresult> args)
{
JobSummary.OutputLocation = JobSummary.BaseOutputFilePath;
RunInBackground(JobSummary);
}
private void RunInBackground(JobSummary JobSummaryobj)
{
var backGroundWorker = new BackgroundWorker();
backGroundWorker.DoWork += (sender, aventArgs)=>runController.launchRequest(aventArgs.Argument as JobSummary);
backGroundWorker.RunWorkerAsync(JobSummaryobj);
}
public void launchRequest(JobSummary JobSummaryobj)
{
// sometimes i don't get updated value here .
}
Что я уже пробовал:
Я попытался передать объект по ссылке ref