AnonymousThread.dpr 874 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. program AnonymousThread;
  2. {$APPTYPE CONSOLE}
  3. {$R *.res}
  4. uses
  5. Classes,
  6. Quick.Commons,
  7. Quick.Console,
  8. System.SysUtils,
  9. Quick.Threads;
  10. begin
  11. try
  12. ReportMemoryLeaksOnShutdown := True;
  13. TAnonymousThread.Execute(
  14. procedure
  15. var
  16. i : Integer;
  17. a : Integer;
  18. begin
  19. for i := 0 to 100 do cout('Working %d',[i],etTrace);
  20. a := i Div (Random(3));
  21. cout('executed thread',etSuccess);
  22. end
  23. ).OnException(
  24. procedure(aException : Exception)
  25. begin
  26. cout('Exception %s',[aException.Message],etError);
  27. end
  28. ).OnTerminate(
  29. procedure
  30. begin
  31. cout('terminated thread',etSuccess);
  32. cout('PRESS <ENTER> TO EXIT',etInfo);
  33. end
  34. ).Start;
  35. ConsoleWaitForEnterKey;
  36. except
  37. on E: Exception do
  38. Writeln(E.ClassName, ': ', E.Message);
  39. end;
  40. end.