Autor Téma: Start náročné procedury ve vláknu + okamžité zrušení v případě potřeby  (Přečteno 1443 krát)

Offline age.new

  • Hrdina
  • ****
  • Příspěvků: 309
  • Karma: 0
Se vším souhlasím. Je to jen příklad. Původně jsem si nebyl jistý, zda mohu TCriticalSection použít ve dvou různých procedurách. Když to jde, dělám is lokální kopie a kritickou sekci srážím na co nejmenší blok kódu. V tomto případě ani není rozumné ukládat řádek po řádku, ale prsknout vše naráz atd.

Offline vandrovnik

  • Guru
  • *****
  • Příspěvků: 1258
  • Karma: 51
    • Verze Delphi: 10.3
Ještě bych ten vlastní kód obalil try-finally:

Kód: Delphi [Vybrat]
  1. Lock.Acquire;
  2. try
  3.  ...
  4. finally
  5.  Lock.Release;
  6. end;

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 3285
  • Karma: 139
    • Verze Delphi: D2007, XE3, DX10
Safr, kdy ze je ten spravnej cas na pridani polozky? (Mezi until terminated a repeat ?) Budes si zbytecne brzdit zapisovaci vlakna (mozna nevadi, ale..).
No to je presne ukazka, jak ta implementace nema vypadat. Za me skoda casu mu neco radit.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 5959
  • Karma: 43
    • Verze Delphi: W10 + D11
Nie je to priamo k problematike, ale možno Ťa to osloví
https://blogs.embarcadero.com/new-ide-plugin-parnassus-parallel-debugger/
W10 64b, Delphi 10.4, FireBird 3.05
Expert na kladenie nejasne formulovaných otázok.