Увидел в блоге следующий пример, по-моему оч. удобно для каких-то простых случаев….
1 2 3 4 5 |
TThread.CreateAnonymousThread( procedure begin // do smth... end).Start; |
Немного модифицировал
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
// Если нужно настраивать какие-то параметры проекта после его запуска t := TThread.CreateAnonymousThread( procedure var i: Integer; begin for i := 0 to 10 do Sleep(15); end).Start; t.FreeOnTerminate := true; // Если нужно настраивать какие-то параметры потока до его запуска... with TThread.CreateAnonymousThread( procedure var i: Integer; begin for i := 0 to 10 do Sleep(15); end) do begin FreeOnTerminate := true; Start; end; e |
Со StackOverflow, в тему, запуск анонимного потока процедуры с параметрами
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
procedure DoSomething(const aWebAddress: String); begin end; procedure BuildThread; var myThread: TThread; fetchURL: string; begin fetchURL := 'http://stackoverflow.com'; // Create an anonymous thread that calls a method and passes in // the fetchURL to that method. myThread := TThread.CreateAnonymousThread( procedure begin DoSomething(fetchURL); end); ... end; |