Вместо обновления графического интерфейса data_ImportProgressChanged должен выдавать исключение, когда вызывается изменяет индикатор выполнения.
Самое короткое изменение заключается в использовании Control.InvokeRequired и .Invoke (), но Backgroundworker был специально создан для этого сценария.
Если вы хотите решить это в объекте данных, вы должны сделать так, чтобы это зависело от графического интерфейса, поэтому лучше решить это в обработчике:
void data_ImportProgressChanged(int progress)
{
if (toolStripProgressBar.InvokeRequired)
{
Action<int> a = new Action(data_ImportProgressChanged);
toolStripProgressBar.Invoke(a, progress);
}
else
toolStripProgressBar.Value = progress;
}