TThread i (a)synchronizacja ?

0

hej !

czy będąc w metodzie wątku TThread, zsynchronizowanej do aplikacji, istnieje możliwość wywołania którejś z jej metod w ramach tego wątku, a nie głównego procesu aplikacji ?

0

Jeśli przez zsynchronizowanie rozumiesz wykonanie metody Synchronize - to nie. Bo Synchronize oznacza: wykonaj przez główny proces.

Dlatego Synchronize jest najprostszą, ale i najgorszą chyba metodą ochrony współdzielonych danych. Może zastosuj sekcję krytyczną?

Zobacz sobie tu: http://www.pergolesi.demon.co.uk/prog/threads/ToC.html

0

wydaje mi się że to co chcę zrobić nie jest jako-tako skomplikowane. pomyślałem że to co napisałem na początku wygląda dość mętnie, a można napisać o wiele prościej - czy istnieje mechanizm (wprost bądz nie) odwrotny do metody Synchronize, czyli taki, który w już zsynchronizowanej metodzie pozwala na wywołanie metody w ramach wątku...
a teraz idę poczytać co mi linknąłeś.

[EDIT]
może jeszcze przybliżę mój przypadek, bo wydaje mi się że synchronizacja jest wyjściem w sam raz, w każdym razie do pewnego miejsca.
otóż wątek coś oblicza, a następnie przekazuje wyniki do komponentów vcl formy. metoda przekazująca te wyniki jest wywołana w Synchronize(). w tej też metodzie, już zsynchronizowanej, sprawdzam czy wątek zwrócił wyniki, czy błąd. jeśli zwraca błąd, to zmieniając trochę argumenty (odpowiednio do błędu) i jakby wywołuję pewne obliczjące metody PONOWNIE, i je właśnie chciałbym znowu wywołać POZA głównym wątkiem aplikacji.

1 użytkowników online, w tym zalogowanych: 0, gości: 1