Thread deadlock

2 posts, 0 answers
  1. Shulla Krous
    Shulla Krous avatar
    13 posts
    Member since:
    Oct 2009

    Posted 18 Sep 2011 Link to this post

    We Have thread deadlock problem since we upgraded to Telerik 2010.3.
    In our application we have a form which is initialized in the background. in some cases, which we can't exactly define the back thread and the main thread lock one each other and the application gets stuck.
    The call stack shows that the thread is stuck at Telerik function

    We'll appriciate your help as quick as possible.
    naama
    ---
    Here is the call stack:

    Background Thread
      [In a sleep, wait, or join] 
      Telerik.WinControls.dll!Telerik.WinControls.PropertySettingCollection.AddInheritedPropertySetting(Telerik.WinControls.IPropertySetting setting, string settingType) + 0x51 bytes 
      Telerik.WinControls.dll!Telerik.WinControls.PropertySettingGroup.InheritRepositoryItem(Telerik.WinControls.Styles.XmlRepositoryItem newItem) + 0x104 bytes 
      Telerik.WinControls.dll!Telerik.WinControls.StyleSheet.ProcessGroupsInheritance(Telerik.WinControls.Styles.XmlStyleRepository repository) + 0xdb bytes 
      Telerik.WinControls.dll!Telerik.WinControls.Styles.StyleMap.ProcessStyle() + 0x52 bytes 
      Telerik.WinControls.dll!Telerik.WinControls.Styles.StyleMap.SetStyleSheet(Telerik.WinControls.StyleSheet styleSheet) + 0x42 bytes 
      Telerik.WinControls.dll!Telerik.WinControls.Styles.StyleManager.ElementStyleChanged(Telerik.WinControls.RadElement element, Telerik.WinControls.RadPropertyChangedEventArgs changeArgs) + 0x147 bytes 
      Telerik.WinControls.dll!Telerik.WinControls.ComponentThemableElementTree.NotifyElementPropertyChanged(Telerik.WinControls.RadElement element, Telerik.WinControls.RadPropertyChangedEventArgs args) + 0xd6 bytes 
      Telerik.WinControls.dll!Telerik.WinControls.RadElement.OnPropertyChanged(Telerik.WinControls.RadPropertyChangedEventArgs e) + 0x5b bytes 
      Telerik.WinControls.dll!Telerik.WinControls.RadComponentElement.OnPropertyChanged(Telerik.WinControls.RadPropertyChangedEventArgs e) + 0x17 bytes 
      Telerik.WinControls.dll!Telerik.WinControls.RadItem.OnPropertyChanged(Telerik.WinControls.RadPropertyChangedEventArgs e) + 0x17 bytes 
      Telerik.WinControls.UI.dll!Telerik.WinControls.UI.LightVisualElement.OnPropertyChanged(Telerik.WinControls.RadPropertyChangedEventArgs e) + 0x2ce bytes 
      Telerik.WinControls.dll!Telerik.WinControls.RadObject.RaisePropertyNotifications(Telerik.WinControls.RadPropertyValue propVal, object oldValue, object newValue, Telerik.WinControls.ValueSource oldSource) + 0x142 bytes 
      Telerik.WinControls.dll!Telerik.WinControls.RadObject.SetValueCore(Telerik.WinControls.RadPropertyValue propVal, object propModifier, object newValue, Telerik.WinControls.ValueSource source) + 0x259 bytes 
      Telerik.WinControls.dll!Telerik.WinControls.StyleBuilderBase.BuildStyle(Telerik.WinControls.RadElement element) + 0x4c bytes 
      Telerik.WinControls.dll!Telerik.WinControls.Styles.StyleMap.BuildStyle() + 0x73 bytes 
      Telerik.WinControls.dll!Telerik.WinControls.Styles.StyleManager.MapStylesToElementsRecursive(Telerik.WinControls.RadElement element) + 0x1cc bytes 
      Telerik.WinControls.dll!Telerik.WinControls.Styles.StyleManager.MapStylesToElementsRecursive(Telerik.WinControls.RadElement element) + 0x1b4 bytes 
      Telerik.WinControls.dll!Telerik.WinControls.Styles.StyleManager.MapStylesToElementsRecursive(Telerik.WinControls.RadElement element) + 0x1b4 bytes 
      Telerik.WinControls.dll!Telerik.WinControls.Styles.StyleManager.MapStylesToElementsRecursive(Telerik.WinControls.RadElement element) + 0x1b4 bytes 
      Telerik.WinControls.dll!Telerik.WinControls.Styles.StyleManager.AttachStylesToElementTree() + 0xa6 bytes 
      Telerik.WinControls.dll!Telerik.WinControls.RootRadElement.ControlThemeChanged() + 0x56 bytes 
      Telerik.WinControls.dll!Telerik.WinControls.ComponentThemableElementTree.CallControlThemeChanged() + 0xd0 bytes 
      Telerik.WinControls.dll!Telerik.WinControls.ComponentThemableElementTree.EnsureThemeAppliedInitially(bool checkInitializing) + 0x3a bytes 
      Telerik.WinControls.dll!Telerik.WinControls.RadControl.OnLoad(System.Drawing.Size desiredSize) + 0xa3 bytes 
      System.Windows.Forms.dll!System.Windows.Forms.Control.CreateControl(bool fIgnoreVisible) + 0x1b2 bytes 
      System.Windows.Forms.dll!System.Windows.Forms.Control.CreateControl(bool fIgnoreVisible) + 0x168 bytes 
      System.Windows.Forms.dll!System.Windows.Forms.Control.CreateControl(bool fIgnoreVisible) + 0x168 bytes 
      System.Windows.Forms.dll!System.Windows.Forms.Control.CreateControl() + 0x24 bytes 
      System.Windows.Forms.dll!System.Windows.Forms.Control.OnVisibleChanged(System.EventArgs e) + 0x13a bytes 
      System.Windows.Forms.dll!System.Windows.Forms.Control.SetVisibleCore(bool value = true) + 0x34f bytes 
      System.Windows.Forms.dll!System.Windows.Forms.TabControl.UpdateTabSelection(bool updateFocus) + 0x11f bytes 
      System.Windows.Forms.dll!System.Windows.Forms.TabControl.OnHandleCreated(System.EventArgs e) + 0x438 bytes 
      System.Windows.Forms.dll!System.Windows.Forms.Control.WmCreate(ref System.Windows.Forms.Message m) + 0x4d bytes 
      System.Windows.Forms.dll!System.Windows.Forms.Control.WndProc(ref System.Windows.Forms.Message m) + 0x4a6 bytes 
      System.Windows.Forms.dll!System.Windows.Forms.TabControl.WndProc(ref System.Windows.Forms.Message m) + 0x3b7 bytes 
      System.Windows.Forms.dll!System.Windows.Forms.Control.ControlNativeWindow.WndProc(ref System.Windows.Forms.Message m) + 0x46 bytes 
      System.Windows.Forms.dll!System.Windows.Forms.NativeWindow.DebuggableCallback(System.IntPtr hWnd, int msg = 1, System.IntPtr wparam, System.IntPtr lparam) + 0xad bytes 
      [Native to Managed Transition] 
      [Managed to Native Transition] 
      System.Windows.Forms.dll!System.Windows.Forms.NativeWindow.CreateHandle(System.Windows.Forms.CreateParams cp) + 0x3e7 bytes 
      System.Windows.Forms.dll!System.Windows.Forms.Control.CreateHandle() + 0x24a bytes 
      System.Windows.Forms.dll!System.Windows.Forms.TabControl.CreateHandle() + 0x6d bytes 
      System.Windows.Forms.dll!System.Windows.Forms.Control.Handle.get() + 0x65 bytes 
      System.Windows.Forms.dll!System.Windows.Forms.Control.ShowKeyboardCues.get() + 0xd9 bytes 
      System.Windows.Forms.dll!System.Windows.Forms.ControlPaint.CreateTextFormatFlags(System.Windows.Forms.Control ctl, System.Drawing.ContentAlignment textAlign, bool showEllipsis, bool useMnemonic) + 0x6d bytes 
      System.Windows.Forms.dll!System.Windows.Forms.Label.CreateTextFormatFlags(System.Drawing.Size constrainingSize) + 0x55 bytes 
      System.Windows.Forms.dll!System.Windows.Forms.Label.GetPreferredSizeCore(System.Drawing.Size proposedConstraints) + 0x139 bytes 
      System.Windows.Forms.dll!System.Windows.Forms.Control.GetPreferredSize(System.Drawing.Size proposedSize) + 0xed bytes 
      System.Windows.Forms.dll!System.Windows.Forms.Label.GetPreferredSize(System.Drawing.Size proposedSize) + 0x2d bytes 
      System.Windows.Forms.dll!System.Windows.Forms.Control.PreferredSize.get() + 0x33 bytes 
      System.Windows.Forms.dll!System.Windows.Forms.Label.AdjustSize() + 0xbd bytes 
      System.Windows.Forms.dll!System.Windows.Forms.Label.OnTextChanged(System.EventArgs e) + 0xbd bytes 
      System.Windows.Forms.dll!System.Windows.Forms.Control.Text.set(string value) + 0x87 bytes 
    > Arachim.Infrastructure.dll!Arachim.Infrastructure.UI.CCtrl_DividingLine.Text.set(string value = "קשרי דואר") Line 40 + 0x38 bytes C#
      Arachim.exe!Arachim.Individuals.UI.Uctrl_Individual.InitializeComponent() Line 531 + 0x55 bytes C#
      Arachim.exe!Arachim.Individuals.UI.Uctrl_Individual.Uctrl_Individual() Line 88 + 0xd bytes C#
      Arachim.exe!Arachim.Individuals.UI.Frm_FamilyCard.InitializeComponent() Line 129 + 0x34 bytes C#
      Arachim.exe!Arachim.Individuals.UI.Frm_FamilyCard.Frm_FamilyCard() Line 127 + 0xd bytes C#
      Arachim.exe!Arachim.Individuals.UI.BackgroundForms.BackgroundFamilyCard.startInit() Line 113 + 0x2b bytes C#
      mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state) + 0x9b bytes 
      mscorlib.dll!System.Threading.ThreadHelper.ThreadStart() + 0x4d bytes 

    Main Thread
      [In a sleep, wait, or join] 
      System.Windows.Forms.dll!System.Windows.Forms.NativeWindow.CreateHandle(System.Windows.Forms.CreateParams cp) + 0x1ce bytes 
      System.Windows.Forms.dll!System.Windows.Forms.Timer.TimerNativeWindow.EnsureHandle() + 0x12b bytes 
      System.Windows.Forms.dll!System.Windows.Forms.Timer.TimerNativeWindow.StartTimer(int interval) + 0x37 bytes 
      System.Windows.Forms.dll!System.Windows.Forms.Timer.Enabled.set(bool value) + 0xeb bytes 
      Arachim.exe!Arachim.Individuals.UI.Frm_CachePhoneBook.Grid_CacheDataRetrieved(object sender = {Arachim.Infrastructure.UI.CCtrl_DataGrid}, System.EventArgs e = {System.EventArgs}) Line 150 + 0x26 bytes C#
      Arachim.Infrastructure.dll!Arachim.Infrastructure.UI.CCtrl_DataGrid.updateDataForPaging(int pageIndex = 0) Line 3363 + 0x68 bytes C#
    > Arachim.Infrastructure.dll!Arachim.Infrastructure.UI.CCtrl_DataGrid.RefreshCacheGrid() Line 3298 + 0x3f bytes C#
      Arachim.exe!Arachim.Individuals.UI.Frm_CachePhoneBook.RefreshData() Line 138 + 0x23 bytes C#
      Arachim.exe!Arachim.Individuals.UI.Frm_CachePhoneBook.tmr_refresh_Tick(object sender = {Interval = 600000}, System.EventArgs e = {System.EventArgs}) Line 143 + 0x18 bytes C#
      System.Windows.Forms.dll!System.Windows.Forms.Timer.OnTick(System.EventArgs e) + 0x1a bytes 
      System.Windows.Forms.dll!System.Windows.Forms.Timer.TimerNativeWindow.WndProc(ref System.Windows.Forms.Message m) + 0x5e bytes 
      System.Windows.Forms.dll!System.Windows.Forms.NativeWindow.DebuggableCallback(System.IntPtr hWnd, int msg = 275, System.IntPtr wparam, System.IntPtr lparam) + 0xad bytes 
      [Native to Managed Transition] 
      [Managed to Native Transition] 
      System.Windows.Forms.dll!System.Windows.Forms.Form.DefWndProc(ref System.Windows.Forms.Message m) + 0x112 bytes 
      System.Windows.Forms.dll!System.Windows.Forms.Control.WndProc(ref System.Windows.Forms.Message m) + 0x148 bytes 
      System.Windows.Forms.dll!System.Windows.Forms.Control.ControlNativeWindow.WndProc(ref System.Windows.Forms.Message m) + 0x46 bytes 
      System.Windows.Forms.dll!System.Windows.Forms.NativeWindow.DebuggableCallback(System.IntPtr hWnd, int msg = 787, System.IntPtr wparam, System.IntPtr lparam) + 0xad bytes 
      [Native to Managed Transition] 
      [Managed to Native Transition] 
      System.Windows.Forms.dll!System.Windows.Forms.NativeWindow.CreateHandle(System.Windows.Forms.CreateParams cp) + 0x1ce bytes 
      System.Windows.Forms.dll!System.Windows.Forms.Timer.TimerNativeWindow.EnsureHandle() + 0x12b bytes 
      System.Windows.Forms.dll!System.Windows.Forms.Timer.TimerNativeWindow.StartTimer(int interval) + 0x37 bytes 
      System.Windows.Forms.dll!System.Windows.Forms.Timer.Enabled.set(bool value) + 0xeb bytes 
      Telerik.WinControls.dll!Telerik.WinControls.RadControlAnimationTimer.EnsureTimer() + 0xab bytes 
      Telerik.WinControls.dll!Telerik.WinControls.RadControlAnimationTimer.Start() + 0x40 bytes 
      Telerik.WinControls.dll!Telerik.WinControls.ElementValuesAnimator.ValuesAnimatorNotRunningState.PerformActionOverride(Telerik.WinControls.AnimationState newState) + 0x80 bytes 
      Telerik.WinControls.dll!Telerik.WinControls.ElementValuesAnimator.ValuesAnimatorState.PerformAction(Telerik.WinControls.AnimationState newState) + 0x16 bytes 
      Telerik.WinControls.dll!Telerik.WinControls.ElementValuesAnimator.ChangedCurrentAction(Telerik.WinControls.AnimationState newState) + 0x27 bytes 
      Telerik.WinControls.dll!Telerik.WinControls.AnimatedPropertySetting.ApplyValueInternal(Telerik.WinControls.RadElement element) + 0x14a bytes 
      Telerik.WinControls.dll!Telerik.WinControls.AnimatedPropertySetting.ApplyValue(Telerik.WinControls.RadElement element) + 0x12b bytes 
      Telerik.WinControls.dll!Telerik.WinControls.Styles.StylesheetTreeNode.ApplyGroupSettingsOnElement(Telerik.WinControls.PropertySettingGroup group, Telerik.WinControls.RadElement element) + 0x7e bytes 
      Telerik.WinControls.dll!Telerik.WinControls.Styles.StylesheetTreeNode.ApplyPropertySettingsOnAttachedElement(Telerik.WinControls.RadElement element = {Telerik.WinControls.Primitives.FillPrimitive}, bool onPropertyChanged) + 0x1a7 bytes 
      Telerik.WinControls.dll!Telerik.WinControls.Styles.StylesheetTreeNode.AttachElement(Telerik.WinControls.RadElement element) + 0x2f bytes 
      Telerik.WinControls.dll!Telerik.WinControls.Styles.StylesheetTree.NodeMapElement(Telerik.WinControls.Styles.StylesheetTreeNode node, Telerik.WinControls.RadElement element, Telerik.WinControls.Styles.StylesheetTree.MapElementContext context = {Telerik.WinControls.Styles.StylesheetTree.MapElementContext}) + 0x1b3 bytes 
      Telerik.WinControls.dll!Telerik.WinControls.Styles.StylesheetTree.NodeMapElement(Telerik.WinControls.Styles.StylesheetTreeNode node = {Telerik.WinControls.Styles.StylesheetTreeNode}, Telerik.WinControls.RadElement element = {Telerik.WinControls.UI.RadScrollBarElement}, Telerik.WinControls.Styles.StylesheetTree.MapElementContext context = {Telerik.WinControls.Styles.StylesheetTree.MapElementContext}) + 0x106 bytes 
      Telerik.WinControls.dll!Telerik.WinControls.Styles.StylesheetTree.MapStyleNodesToElement(Telerik.WinControls.RadElement element, Telerik.WinControls.Styles.StylesheetTree.MapElementContext context) + 0xa6 bytes 
      Telerik.WinControls.dll!Telerik.WinControls.Styles.StylesheetTree.MapStyleNodesToElementHierarchy(Telerik.WinControls.Styles.StylesheetTree.MapElementContext context) + 0xac bytes 
      Telerik.WinControls.dll!Telerik.WinControls.Styles.StylesheetTree.AttachElement(Telerik.WinControls.RadElement addedElement = {Telerik.WinControls.UI.RadScrollBarElement}) + 0x6b bytes 
      Telerik.WinControls.dll!Telerik.WinControls.Styles.StylesheetTree.OnElementSelectorKeyChanged(Telerik.WinControls.RadElement element, Telerik.WinControls.RadPropertyChangedEventArgs changeArgs) + 0x1ce bytes 
      Telerik.WinControls.dll!Telerik.WinControls.Styles.StyleManager.ElementStyleSelectorKeyPropertyChanged(Telerik.WinControls.RadElement element, Telerik.WinControls.RadPropertyChangedEventArgs changeArgs) + 0x96 bytes 
      Telerik.WinControls.dll!Telerik.WinControls.ComponentThemableElementTree.NotifyElementPropertyChanged(Telerik.WinControls.RadElement element, Telerik.WinControls.RadPropertyChangedEventArgs args) + 0xd6 bytes 
      Telerik.WinControls.dll!Telerik.WinControls.RadElement.OnPropertyChanged(Telerik.WinControls.RadPropertyChangedEventArgs e) + 0x5b bytes 
      Telerik.WinControls.dll!Telerik.WinControls.RadComponentElement.OnPropertyChanged(Telerik.WinControls.RadPropertyChangedEventArgs e) + 0x17 bytes 
      Telerik.WinControls.dll!Telerik.WinControls.RadItem.OnPropertyChanged(Telerik.WinControls.RadPropertyChangedEventArgs e) + 0x17 bytes 
      Telerik.WinControls.UI.dll!Telerik.WinControls.UI.RadScrollBarElement.OnPropertyChanged(Telerik.WinControls.RadPropertyChangedEventArgs e) + 0x18 bytes 
      Telerik.WinControls.dll!Telerik.WinControls.RadObject.RaisePropertyNotifications(Telerik.WinControls.RadPropertyValue propVal, object oldValue, object newValue, Telerik.WinControls.ValueSource oldSource) + 0x142 bytes 
      Telerik.WinControls.dll!Telerik.WinControls.RadObject.SetValueCore(Telerik.WinControls.RadPropertyValue propVal, object propModifier, object newValue, Telerik.WinControls.ValueSource source) + 0x259 bytes 
      Telerik.WinControls.dll!Telerik.WinControls.Styles.ItemStateManagerBase.SetItemState(Telerik.WinControls.RadItem item, string[] stateNames) + 0xe7 bytes 
      Telerik.WinControls.dll!Telerik.WinControls.Styles.ItemStateManager.StateInvalidated(Telerik.WinControls.RadItem item, Telerik.WinControls.Styles.StateNodeBase elementStateBase) + 0x1bb bytes 
      [Native to Managed Transition] 
      [Managed to Native Transition] 
      Telerik.WinControls.dll!Telerik.WinControls.RadObject.OnPropertyChanged(Telerik.WinControls.RadPropertyChangedEventArgs e) + 0x5d bytes 
      Telerik.WinControls.dll!Telerik.WinControls.RadElement.OnPropertyChanged(Telerik.WinControls.RadPropertyChangedEventArgs e) + 0x1b bytes 
      Telerik.WinControls.dll!Telerik.WinControls.RadComponentElement.OnPropertyChanged(Telerik.WinControls.RadPropertyChangedEventArgs e) + 0x17 bytes 
      Telerik.WinControls.dll!Telerik.WinControls.RadItem.OnPropertyChanged(Telerik.WinControls.RadPropertyChangedEventArgs e) + 0x17 bytes 
      Telerik.WinControls.UI.dll!Telerik.WinControls.UI.RadScrollBarElement.OnPropertyChanged(Telerik.WinControls.RadPropertyChangedEventArgs e) + 0x18 bytes 
      Telerik.WinControls.dll!Telerik.WinControls.RadObject.RaisePropertyNotifications(Telerik.WinControls.RadPropertyValue propVal, object oldValue, object newValue, Telerik.WinControls.ValueSource oldSource) + 0x142 bytes 
      Telerik.WinControls.dll!Telerik.WinControls.RadObject.SetValueCore(Telerik.WinControls.RadPropertyValue propVal, object propModifier, object newValue, Telerik.WinControls.ValueSource source) + 0x259 bytes 
      Telerik.WinControls.dll!Telerik.WinControls.ComponentInputBehavior.HandleHoveredElementsChanged(System.Collections.Generic.List<Telerik.WinControls.RadElement> newHoveredElements = Count = Cannot evaluate expression because the current thread is in a sleep, wait, or join) + 0x3e8 bytes 
      Telerik.WinControls.dll!Telerik.WinControls.ComponentInputBehavior.SelectElementOnMouseOver(System.Windows.Forms.MouseEventArgs e) + 0x8f bytes 
      Telerik.WinControls.dll!Telerik.WinControls.ComponentInputBehavior.OnMouseMove(System.Windows.Forms.MouseEventArgs e) + 0x4b bytes 
      Telerik.WinControls.dll!Telerik.WinControls.RadControl.OnMouseMove(System.Windows.Forms.MouseEventArgs e) + 0x23 bytes 
      Telerik.WinControls.GridView.dll!Telerik.WinControls.UI.RadGridView.OnMouseMove(System.Windows.Forms.MouseEventArgs e) + 0x81 bytes 
      System.Windows.Forms.dll!System.Windows.Forms.Control.WmMouseMove(ref System.Windows.Forms.Message m) + 0x95 bytes 
      System.Windows.Forms.dll!System.Windows.Forms.Control.WndProc(ref System.Windows.Forms.Message m) + 0x5ed bytes 
      Telerik.WinControls.dll!Telerik.WinControls.RadControl.WndProc(ref System.Windows.Forms.Message m) + 0x97 bytes 
      System.Windows.Forms.dll!System.Windows.Forms.Control.ControlNativeWindow.WndProc(ref System.Windows.Forms.Message m) + 0x46 bytes 
      System.Windows.Forms.dll!System.Windows.Forms.NativeWindow.DebuggableCallback(System.IntPtr hWnd, int msg = 512, System.IntPtr wparam, System.IntPtr lparam) + 0xad bytes 
      [Native to Managed Transition] 
      [Managed to Native Transition] 
      System.Windows.Forms.dll!System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(int dwComponentID, int reason, int pvLoopData) + 0x5c3 bytes 
      System.Windows.Forms.dll!System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(int reason = -1, System.Windows.Forms.ApplicationContext context = {System.Windows.Forms.ApplicationContext}) + 0x578 bytes 
      System.Windows.Forms.dll!System.Windows.Forms.Application.ThreadContext.RunMessageLoop(int reason, System.Windows.Forms.ApplicationContext context) + 0x65 bytes 
      Arachim.exe!Arachim.Program.Main(string[] args = {string[0]}) Line 31 + 0x25 bytes C#
      [Native to Managed Transition] 
      [Managed to Native Transition] 
      Microsoft.VisualStudio.HostingProcess.Utilities.dll!Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() + 0x47 bytes 
      mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state) + 0x9b bytes 
      mscorlib.dll!System.Threading.ThreadHelper.ThreadStart() + 0x4d bytes 



  2. Nikolay
    Admin
    Nikolay avatar
    1804 posts

    Posted 19 Sep 2011 Link to this post

    Hi Naama,

    Please find the answer to your question in the support ticket that you have opened about the same topic.

    Best wishes,
    Nikolay
    the Telerik team

    Explore the entire Telerik portfolio by downloading the Ultimate Collection trial package. Get it now >>

  3. UI for WinForms is Visual Studio 2017 Ready
Back to Top