Rozcestník: Jste tu poprvé?
Pro začátečníky jsem napsal úvod do programování v Delphi.
Můžete si přečíst informace ohledně změn v jednotlivých verzích Delphi a
případně mezi jednotlivými edicemi Delphi.
Pokud přecházíte ze starších verzí tak řetezce a unicode.
Možná Vás bude zajímat spolupráce databáze a Delphi,
nebo se budete rozhodovat mezi různými druhy Delphi projektů.
Navštivte adresář nejpopulárnějších open source Delphi komponent
Platform status - podporované platformy v jednotlivých verzích
Free Delphi Starter Edition download
Potřebujete Delphi školení nebo konzultace na různá témata?
Jen taková krátká poznámka ze života.
Dělal jsem úkol, kde se spouštělo velké množství tasků, které nezávisejí na pořadí. Prostě jak přijde nový požadavek, tak se převezme a podle případu se vygeneruje x výstupů. Krásná úloha pro TTask a TThreadPool. Fungovalo to nádherně, jen si zákazník přál, aby si mohl regulovat kolik dostane program vláken.
Datum: 2024-05-24 13:34:00 Tagy: vlakna, paralel, Threading
Už dříve jsem psal o TThread.Queue, ale možná jsem nezdůraznil, že v případě volání z hlavního vlákna je takový kód proveden okamžitě, tj. bez volání synchronize, což třeba nejen u Android aplikací může být požadováno.
Pro takový případ je k dispozici TThread.ForceQueue který zaručí, že i v případě volání z hlavního vlákna je takový kód prováděn se synchronizací.
Zkuste si novou aplikaci a na tlačítko Button1.OnClick dejte
procedure TForm6.Button1Click(Sender: TObject);
begin
TThread.ForceQueue(nil,
procedure
begin
Button1.Caption := 'hello'; // break point 1
//Button1.Repaint;
end
);
end;// break point 2
A nyní program otestujte. Měl by se nejdříve zastavit na break point 2 a pak až na break point 1. Pokud ForceQueue nahradíte za Queue, tak se pořadí zastavení prohodí.
Více...Datum: 2019-12-30 20:53:00 Tagy: paralel
V rámci prověřování jednoho nápadu jsem chtěl vyzkoušel jak se chová TThread.Queue a TThread.Synchronize (více o těchto volání z dřívějška) u ne GUI aplikací (resp. zkoušel jsem jen konzolové).
No minule jsem byl k THTTPClient trošku nespravedlivý, ve skutečnosti toho umí více než se zdálo. Kromě https bez nutnosti dodání OpenSSL pro různé platformy to má zajímavé možnosti ohledně paralelního zpracování. Ukáži na malém příkladu.
Ukáži nejprve příklad na zamyšlení a pak vysvětlím co to vlastně dělá. Více...
Datum: 2015-04-19 22:59:00 Tagy: XE8, Indy, synapse, RTL, paralel
Už dříve jsem psal o možnosti volání synchronize přes anonymní metodu z threadu (tj. synchronní možnost), ale teď Malcolm Groves v článku Updating the UI from a Task publikoval i asynchronní možnost takže má další pěkný příspěvek, který jsem sprostě okopíroval (zároveň i doplnění mé odpovědi Geby).
Narazil jsem na pěkné vysvětlení IFuture s pěkným příkladem od Malcolma Grovese. Zásadní informace je, že IFuture není hodnota, kterou budete počítat v budoucnu, ale hodnota, kterou budete v budoucnu potřebovat. Tato jemná nuance je zásadní.
Krása použití paralelního programování v XE7 vynikne, až člověk změní myšlení. Přiznám se, že mi to trvá.
XE7 přichází s novou jednotkou přímo v RTL a to System.Threading, která zjednodušuje paralelní programování. Jedná se o multiplatformní věc a mezi jinými umí ThreadPool, který podle zátěže přidává nebo odebírá další vlákna.
Datum: 2014-09-09 23:39:00 Tagy: XE7, RTL, Threading, paralel,