Rate mal, wofür man dort ein TimeOut angeben kann.
WaitFor wartet auf das Event und will man nebenbei noch Eventunabhängig z.B. noch das Terminated prüfen, dann ginge das darüber.
Über das TimeOut hat man quasi ein Sleep, welches regelmäßige Auswertungen erlaubt, den Thread meistens schlafen läßt (CPU-Entlastung) und gleichzeitig dennoch, über das Event, schnell reagieren kann.
Siehe
Delay.