I think you first need to read up on
Tasks
(which is the modern way of threads).
Here is a good article about it:
Task Parallel Library: 1 of n[
^]
As you already mentioned "Pseudo", it is probably best to not let all Tasks access the same USB port simultaneously.
When working with Tasks you can e.g. use
.ContinueWith
to start another Task when a Task is finished.
Oh, and I would also recommend using a
DataSource
or
BindingList
for your DataGrid, here is an excellent article about it:
A-Detailed-Data-Binding-Tutorial
Your task could then keep running on the background (long running Task) and update the
DataSource
which automagically updates the DataGrid.