If your streams are retrieving data from the same server with a very slow connection (which means that limited bandwidth is a major factor), you will not get anything using multiple streams.
OTOH it might indeed be better to use a single thread for all data sampling operations:
After a while, you will receive some of the data so that you can update the interface. The acquisition will share the bandwidth in parallel, and you will get a long time without any data, and as a result, the results will appear shortly after another. Your user interface will look less responsive.
If the selected calls cause a lot of I / O on the server, running them at the same time cannot lead to more bandwidth. Please note that other operations will also be performed on the server.
IMHO you should save the selections in the stream for better responsiveness of the user interface, but use only one.
Edit: You indicate in a comment that the samples may take different time intervals. If you can evaluate which queries will be the fastest to complete the transfer, complete them first. It is still assumed that data transfer takes most of the time, rather than executing a request on the server.
If you cannot estimate how many long requests will be required, or if bandwidth is not the only limitation, using multiple threads may, of course, work best for you.
mghie source share