in reply to Tk and Threads

Dirk80:

Update: Never mind. You explicitly stated that your ThreadWorker was a simplified version of the real one, so this comment doesn't necessarily apply.


I'm only commenting on this bit of your post:

And the other problem is the design. "ThreadWorker" needs "ThreadManager" and "ThreadManager" needs "ThreadWorker".

I don't see that a circular dependency is necessarily a problem. If it were me, I'd just put the ThreadWorker package in the same source module as ThreadManager, for two reasons:

  1. It's a small class, and would get a bit smaller when combined with ThreadWorker (it would share some use declarations, some block comments, and such.
  2. It's not directly exposed to the application. (It only contains the work function--you don't even need to export it, as you could directly call it.)

...roboticus

When your only tool is a hammer, all problems look like your thumb.