As Dan's machine is not a "big iron one", I guess these about 7500 thread creation/termination in about 90 seconds could explain the high system load.
In the moment, my implementation of WaitCommEvent creates a thread in the context of the running program for every call. Any ideas how to do it better?
I'd think that creating that thread once per opened port (delayed until WaitCommEvent is called) would be better.
The thread can be suspended and thus out of the way when it's not needed.
Cheers, Kuba