🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.delphi
Article #346181

Re: Problem z synchronizacją wątków i DB

#346181
From: Roman Tyczka
Date: Tue, 21 Nov 2017 17:21
30 lines
2391 bytes
On Tue, 21 Nov 2017 08:59:52 -0800 (PST), ExM wrote:

>>> Jak powinienem zrobić to prawidłowo aby nie dochodziło do konflitów między watkami?
>> 
>> Prawidłowo powinieneś w wątku utworzyć connection, wykonać query, a wyniki
>> lub fakt ich gotowości przekazać do formy za pomocą Synchronize() lub np.
>> PostMessage().
>> Absolutnie nie powinieneś mieć jednego query dostępnego i w wątku i w
>> formie.
> 
> Problem w tym że na wynikach tego query opiera się wiele elementów wizualnych (listy rozwijane, filtry itp)
> Jeśli więc utworzę obiekt w wątku jak miałby on dalej istnieć i odświeżać wyniki jeśli byłby połączony przez TDataSource z formą główną?

Musisz zmienić myślenie jeśli nie chcesz za chwilę rozgryzać "dziwnych
problemów u klientów". Dane z tego query możesz wszak przepakować w obiekty
i te obiekty przekazać do main threada. Miliony możliwości żeby to zrobić.

> Sorry - może nie do końca zrozumiałem jak by to miało działać.

Sprawnie i bezbłędnie.
 
> Inna sprawa że jeśli pilnuję aby wszystko co się dzieje z poziomu wątku pobocznego na formie głównej było synchronizowane to jakie jest zagrożenie takiego działania?

Robisz sobie sam pod górę. Nie po to się wątków używa, żeby potem musieć
wszystko blokować synchronizacją. Przemyśl jakąś metodę przekazywania
danych z wątka roboczego do GUI i problem rozwiązany.

-- 
pozdrawiam
Roman Tyczka
Technical Details
Message-ID: <r1jqm7r7ph6m.dlg@tyczka.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mail
References: <90a4ea00-38f5-45fc-b22c-7db238f908e2@googlegroups.com> <rtg5c5r7tivr.dlg@tyczka.com> <9d7ad2ce-b8e2-41cd-91e3-c11219515415@googlegroups.com>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mail
From: Roman Tyczka <noemail@because.no>
Newsgroups: pl.comp.lang.delphi
Subject: Re: Problem z synchronizacją wątków i DB
Date: Tue, 21 Nov 2017 18:21:44 +0100
Organization: ATMAN - ATM S.A.
Lines: 30
Sender: romek@tyczka.no.found
Message-ID: <r1jqm7r7ph6m.dlg@tyczka.com>
References: <90a4ea00-38f5-45fc-b22c-7db238f908e2@googlegroups.com> <rtg5c5r7tivr.dlg@tyczka.com> <9d7ad2ce-b8e2-41cd-91e3-c11219515415@googlegroups.com>
NNTP-Posting-Host: 94.75.90.137
Mime-Version: 1.0
X-Trace: node1.news.atman.pl 1511284904 7346 94.75.90.137 (21 Nov 2017 17:21:44 GMT)
X-Complaints-To: usenet@atman.pl
NNTP-Posting-Date: Tue, 21 Nov 2017 17:21:44 +0000 (UTC)
User-Agent: 40tude_Dialog/2.0.15.84
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit