Synchronize w wątku

0

Dzieńdoberek :D
Mam sobie baaardzo duży kodzik który chciałbym umieścić w wątku ... niestety, kod ów odwołuje się w bardzo wielu miejscach do bardzo wielu obiektów "zewnętrznych" (VCL znaczy się :P) więc nie wyobrażam sobie pisania dziesiątek procedur dla Synchronize i tworzenia setek zmiennych globalnych w wątku aby w jakiś sposób przekazać parametry do metod synchronize ... Zastanawiam się czy ma sens wrzucenie całej, ogromnej i długo działającej procki do synchronize ? czy nie zadziała to wtedy tak jakby wątku nie było?
Czy jest w ogóle jakiś inny, lepszy sposób na to? [???]
Pozdrawiam :)

0

tak - przeanalizować kod i do wątku wrzucić tylko to co potrzeba

0
Misiekd napisał(a)

tak - przeanalizować kod i do wątku wrzucić tylko to co potrzeba

Pytam się o konkretne porady [glowa]
Połowe problemów z tego forum możnaby "załatwić" odpowiadając "przeanalizuj kod" [glowa]
Specyfika zadania które wykonuje ten kod jest taka, że bez dostępu do danych głównego wątku jest niemożliwa (fizycznie odwołania następuja dosyć rzadko, ale w kodzie jest ich cała masa :/ )

0
h4x10r_again napisał(a)

Pytam się o konkretne porady [glowa]

a cóż ci mam napisać na tak postawione pytanie innego??? Ani kawałka kodu i oczekujesz, że się domyślę co ty tam robisz?

0

synchronize wykonuje się w kontekście głównego wątku, więc umieszczenie tam całości kodu drugiego wątku spowoduje, że równie dobrze mógłbyś go nie tworzyć.
nie musisz wywoływać kodu odwołującego się do kontrolek w synchronize, w zasadzie wystarczy, że wsadzisz go do sekcji krytycznej albo muteksa.

0
ŁF napisał(a)

synchronize wykonuje się w kontekście głównego wątku, więc umieszczenie tam całości kodu drugiego wątku spowoduje, że równie dobrze mógłbyś go nie tworzyć.
nie musisz wywoływać kodu odwołującego się do kontrolek w synchronize, w zasadzie wystarczy, że wsadzisz go do sekcji krytycznej albo muteksa.

Hmm a mógłbyś podać jakieś bliższe informacje na ten temat? Szukanie "mutex + TThread" lub "critical section + tthread" nie bardzo mi rozjaśniło sprawę ... :(

Próbowałem zrobić tak, żeby wątek dopiero przy synchronize "wymieniał się danymi" z głownym wątkiem, to niestety odpada, ponieważ wątek modyfikuje już istniejące dane (a nie tworzy nowe) - nie mogę używać assign ponieważ korzystam z dziedziczenia i nigdy nie wiem jakiej klasy instancja zostanie przekazana do wątku / procedury :(

0

Może zacznijmy od tego: A za cojest odpowiedzialny kod który chcesz umieścić w wątku i dlaczego chcesz to zrobić ? Często spotyka sie na forum problemy odnośnie wątków, kiedy tak anprawde zastosowanie wątku jest mylnym wyborem.

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