I've tried to show mapbox - progress bar with tile async layer and when it's trying to update progress bar (ui-element) from tile-thread it throws InvalidOperationException with following details:
Cross-thread operation not valid: Control '' accessed from a thread other than the thread it was created on.
So i've checked the source code of MapBox.cs within SharpMap.UI. In the UpdateImage function tries to set both visible/enable properties of progress bar. This is why it's throwing exception, so i've changed these two lines:
_progressBar.Visible = true;
_progressBar.Enabled = true;
_progressBar.Invoke((MethodInvoker)(() => _progressBar.Visible = true));
_progressBar.Invoke((MethodInvoker)(() => _progressBar.Enabled = true));