Hi all! I have this strange problem with the UltraTabControl in a production environment.
- The famous red cross... I know this is a thread related issue, but I don't find the cause. We have a central menu application from which all programs are loaded in a new threads:
Thread thread2 = new Thread(() => { Form2 f2 = new Form2(); Application.Run(f2); }); thread2.SetApartmentState(AppartmentState.STA); thread2.Start();
Once the sub-program is launched, there is no interaction between the menu and this program.
- This error occurs approximately once in the week and only by ONE user.
- At the moment the error occurs, the user is not working in the application. So it crashes when the program is in an inactive/idle state.
- We had a simular problem (red cross) earlier with the UltraStatusBar, but in that case all the users were affected. Removing the date- and time-panel from the UltraWinStatusBar resolved the problem.
Can someone give me a hint where I have to search to solve this issue? @Mike Saltzman, you perhaps? (Fan of your posts!) This is the exact error and stacktrace.
Error: Index was outside the bounds of the array.
Stack: at System.Collections.Generic.HashSet`1.SetCapacity(Int32 newSize, Boolean forceNewHashCodes) at System.Collections.Generic.HashSet`1.AddIfNotPresent(T value) at Infragistics.Win.Notifications.NotificationUIElement.AddNotificationUIElementIfPossible(UIElement parent, INotificationBadgeProvider notificationProvider) at Infragistics.Win.UIElement.VerifyChildElements(ControlUIElementBase controlElement, Boolean recursive) at Infragistics.Win.UIElement.DrawElement(UIElementDrawParams& defaultDrawParams) at Infragistics.Win.UIElement.DrawChildElements(UIElementDrawParams& drawParams) at Infragistics.Win.UIElement.DrawElement(UIElementDrawParams& defaultDrawParams) at Infragistics.Win.UIElement.DrawChildElements(UIElementDrawParams& drawParams) at Infragistics.Win.UIElement.DrawElement(UIElementDrawParams& defaultDrawParams) at Infragistics.Win.UIElement.DrawChildElements(UIElementDrawParams& drawParams) at Infragistics.Win.UIElement.DrawElement(UIElementDrawParams& defaultDrawParams) at Infragistics.Win.UIElement.DrawHelper(Graphics graphics, Rectangle invalidRectangle, Boolean doubleBuffer, AlphaBlendMode alphaBlendMode, Boolean clipText, Boolean forceDrawAsFocused, Boolean preventAlphaBlendGraphics, Nullable`1 zoomFactor) at Infragistics.Win.ControlUIElementBase.Draw(Graphics graphics, Rectangle invalidRectangle, Boolean doubleBuffer, AlphaBlendMode alphaBlendMode, Size elementSize, Boolean preventAlphaBlendGraphics) at Infragistics.Win.ControlUIElementBase.Draw(Graphics graphics, Rectangle invalidRectangle, Boolean doubleBuffer, AlphaBlendMode alphaBlendMode) at Infragistics.Win.UltraControlBase.OnPaint(PaintEventArgs pe) at System.Windows.Forms.Control.PaintWithErrorHandling(PaintEventArgs e, Int16 layer) at System.Windows.Forms.Control.WmPaint(Message& m) at System.Windows.Forms.Control.WndProc(Message& m) at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Great. Glad to hear it.
I was pretty sure I nailed it. :)
Hi Mike! Just to keep you posted: we recently updated to version 21.1 and since then (fingers crossed) the error hasn't occured yet! #heroofthemonth
Yes. That was a typo in my previous post where I wrote "v21.2." I meant "v21.1".
I'm pretty sure the fix has been available in the latest bi-weekly builds of 20.1 and 20.2, also. Developer Support was supposed to send you a notification.
Just to be sure, I just tested out my sample with our latest 21.1 build and I am not getting the exception. So I am pretty confident that this is fixed.
Hi Mike, just to be 100% sure, the 2021 Vol 01 version of this week contains this threading-bugfix?
It's really up to you. The fix will be made in v20.1 and up. So you could get v20.1 or v20.2, or even wait for v21.2 if you like. For v20.1 or v20.2, you will need to get the latest bi-weekly build in order to get the fix, in addition to the base install. Once a fix is released, that is. :)