..Kann ein Thread das Programm so blockieren?
...
Ja kann er! Wie schon DeddyH gesagt hat, das sieht sehr nach einem Deadlock aus.
Bsp.: Du schickst einen Thread schlafen (Suspend) während er in einer Critical Section ist und der Hauptthread will auch auf die Critical Section zugreifen-> typischer Deadlock.
Noch typischer:
Man läuft in einem Thread in eine CriticalSection,
syncronisiert sich in den Hauptthread
und will dort ebenfalls in diese CriticalSection rein.
> Der Hauptthread wartet nun auf die Freigabe der CS und der andere Thread wartet auf den Haupthread.