*i have a vb.net application that plots 16 plots immediately, the plots data are realtime. the 16 plots must draw the points at the time they receive them (must be no delay), to do that
1- i made a timer with ticks at 50 ms.
2- at each timer tick call the plotting function 16 times (with a graph name as parameter)like that:


it made a big delay, when i used threading the application became unresponsive
can anyone help please??

4 Years
Discussion Span
Last Post by Emad Saber

Can't you pass in the points as one data set rather than call it 16 times? You'd need to change your plotting function of course. How fast are new plot points generated (can you slow down the function call to match the incoming data)?
If it becomes unresponsive when use threading you most likely will be causing dealocks or race conditions. Without sample code we can't help you there.


i tried to pass the point that will be drawn to a sub , that sub draws the point on all plots (at first, i was passing the plot name and the function plots a point on it and so on) but the performance didn't change better? i don't know what will happen if i tried threading

Reverend Jim,
the points is read in a list(Of Single) from a text file once at the startup of the program.

at an advanced time of the project the points will be received at realtime from a serial port? do you think the performance will decrease greatly when using the serial port? may i need threading???

Thanks All


I have never written a multi-threaded application under Windows (although I have written many on a SEL mainframe running MPX, but that's another animal entirely) but I think multi-threaded is the way to go. You could implement a queue (FIFO or First In First Out) structure where one thread would take data from the serial port and add it to the queue while another would remove data from the queue and plot it. You would not require timers so both threads could operate at full speed.

Edited by Reverend Jim

This article has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.