AnonymousThreads.lpr 780 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. program AnonymousThreads;
  2. {$APPTYPE CONSOLE}
  3. {$MODE DELPHI}
  4. uses
  5. Classes,
  6. Quick.Commons,
  7. Quick.Console,
  8. SysUtils,
  9. Quick.Threads;
  10. type
  11. TMyProcs = class
  12. class procedure DoWork;
  13. class procedure DoTerminate;
  14. end;
  15. class procedure TMyProcs.DoWork;
  16. var
  17. i : Integer;
  18. begin
  19. for i := 0 to 10 do cout('Working %d',[i],etTrace);
  20. cout('executed thread',etSuccess);
  21. end;
  22. class procedure TMyProcs.DoTerminate;
  23. begin
  24. cout('terminated thread',etSuccess);
  25. cout('PRESS <ENTER> TO EXIT',TLogEventType.etInfo);
  26. end;
  27. begin
  28. try
  29. TAnonymousThread.Execute(TMyProcs.DoWork)
  30. .OnTerminate(TMyProcs.DoTerminate).Start;
  31. ConsoleWaitForEnterKey;
  32. except
  33. on E: Exception do
  34. Writeln(E.ClassName, ': ', E.Message);
  35. end;
  36. end.