I don't know if this helps, but I marshal the thread back to the UI thread by calling this.InvokeRequired and this.Invoke where "this" is the form on which the UltraDesktopAlert is contained. I'm not an experienced developer so my approach may be flawed, but it seems to work.
(I've also tried using other controls, instead of "this", and they also seem to work.) So I have code like the following.
private delegate void safeBroadcast(BroadcastData data);
private void DisplayBroadcast(BroadcastData data) {
if (this.InvokeRequired) {
safeBroadcast del = new safeBroadcast(DisplayBroadcast); this.Invoke(del, new object[ ] { data });
}
else {
myDestopAlert.Show("myCaption", "myMessage");
}
}
Steve