I have a form that contains so many controls and does lots and lots of interactive actions. This is causing my form to have some delays during usage.
One of these controls is a plotting tool that plots lots of data recieved from my server. I thought of moving the ploting tool to another form trying to make my form lighter, reducing the delay problem. I have been told by a friend that this won’t help much since it is the same thread handling both of the forms, is that true ?
I have a form that contains so many controls and does lots and lots
Share
What your friend says is true but it is unlikely to apply here. A form appears sluggish when it has a lot of controls. When it needs to redraw itself then you’ll start noticing the time taken by every control to paint itself. Typically that happens when the form has around 50 controls, but greatly depends on the type of control. Buttons are very expensive, labels are not, for example. Your plot is likely to be expensive so anything that’s drawn after it (higher in the Z-order) will be delayed. Try right-clicking the control and click “Bring to Front” so it is drawn last.
Whatever you do, never just make drastic changes like you are contemplating without knowing that you’ll improve your program. Which requires measuring first. You’ll need a profiler to know where the cpu cycles are being consumed. Profiling painting code is not so easy, given that it doesn’t execute very often. That can be fixed, modify your form constructor so it looks like this:
Your form now burns 100% core, repainting itself over and over again. But is otherwise still completely functional. Just what you need to effectively profile the painting code.