TThread.Synchronize causing (near) deadlock in Delphi 2009 (worked in Delphi 7)
In Delphi 2009, synchronize'd functions that worked fine in Delphi 7 execute with sublime slowness until you wiggle the mouse over the open form. Wiggling the mouse causes the program to go into some mouse idle state which does CheckSynchronize() . CheckSynchronize() appears to be called less frequently in Delphi 2009 than in Delphi 7, but we can't figure out why or where. Placing this code: procedure TMyForm.FormCreate(Sender : TObject) Classes.WakeMainThread := WakeMainThread; end; procedure TMyForm.WakeMainThread(Sender: TObject); begin SendMessage(Application.MainForm.Handle, WM_NULL, 0, 0