Synchronize w wątku

Odpowiedz Nowy wątek
2006-08-22 00:40
extra_hacker:P
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 :)

Pozostało 580 znaków

2006-08-22 01:38
0

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


- Ciemna druga strona jest.
- Nie marudź Yoda, tylko jedz tego tosta.
Google NIE GRYZIE!
Pomogłem - kliknij

Pozostało 580 znaków

2006-08-22 03:00
h4x10r_again
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 :/ )

Pozostało 580 znaków

2006-08-22 03:15
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?


- Ciemna druga strona jest.
- Nie marudź Yoda, tylko jedz tego tosta.
Google NIE GRYZIE!
Pomogłem - kliknij

Pozostało 580 znaków

2006-08-22 10:05
ŁF
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.


Pozostało 580 znaków

2006-08-22 11:26
ooooo
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 :(

Pozostało 580 znaków

2006-08-22 13:31
ŁF
2006-08-23 08:36
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.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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