Avatar billede logoole Nybegynder
07. marts 2001 - 16:19 Der er 12 kommentarer og
1 løsning

Threads + MDI

Jeg har en MDI applikation, som består af en parentform, med menuer osv. og nogle childforms. I en af disse childforms skal man kunne sætte en række variabler, som der til sidst skal køres nogle udregninger på. Det skal være muligt at kører flere af disse udregninger sideløbende, dvs. med forskellige variabler. Når man opretter de forskellige childs hentes nogle standard værdier i en Access DB. Alle variabler hentes ind i en record, og ændres de gemmes variablerne i recorden. Mit problem er, at de forskellige childs kører på den samme record. Jeg har prøvet at oprette de forskellige childs i hver deres tråd, men på en eller anden måde konflikter de alligevel!

Mit spørgsmål er om der er nogen som har udviklet en mdi applikation hvor hver child kører i sin egen tråd? Eller har nogle ider eller information om hvordan man skal få det til at spille ordentlig???
Avatar billede borrisholt Novice
07. marts 2001 - 16:21 #1
hvis n tråde skal tilgå den SAMME record skal du implemtere gensidig udelukkelse på den record, således der ikke er flere tråde der skriver samtitigt ...

Jens B
Avatar billede logoole Nybegynder
07. marts 2001 - 16:23 #2
De skal ikke tilgå den samme record. Hver tråd(child) skal have sin egen record.
Avatar billede borrisholt Novice
07. marts 2001 - 16:28 #3
kan du så ikke bare oprette den record som privat datamedlem på din tråd ?

Jens B
Avatar billede logoole Nybegynder
07. marts 2001 - 16:34 #4
det har jeg prøvet uden held! Det skulle måske lige nævnes, at på hver child ligger der en del frames hvori de forskellige variabler ændres. Disse skal jo også bruge recorden. Jeg erklærede recorden i min parentform. Og i childform.create bliver recorden sat til en global variabel i childformen! Men det burde vel heller ikke give problemer, når de enkelte childs kører i hver deres tråd????
Avatar billede martinlind Nybegynder
07. marts 2001 - 17:03 #5
Hvis dette var noget så drop en mail adr.

//ThreadExample written for Borland Community as an example for multi-threading with
//the standard window functions and synchronizing with the VCL through messages.


/Martin
Avatar billede martinlind Nybegynder
07. marts 2001 - 17:04 #6
Det er et lille prog. med noget source.
Avatar billede logoole Nybegynder
07. marts 2001 - 17:07 #7
Jeg kan da prøve at kigge på det!
ole.davidsen@logodan.dk
Avatar billede martinlind Nybegynder
07. marts 2001 - 17:13 #8
Er på vej....
Avatar billede logoole Nybegynder
07. marts 2001 - 17:49 #9
Der var ikke rigtig noget i det jeg kunne bruge! Det er et meget godt eksempel på hvordan man bruger criticalsection, men det er ikke lige det jeg har brug for.
Avatar billede pellelil Nybegynder
07. marts 2001 - 18:39 #10
Nå \"LogoOle\" jeg var ellers sikker på at i \"var til\" DataFlex og BTreive derude i Silkeborg :-)

Hvis du har flere tråde der accesser databaser så skal du \"under normale omstændigheder\" har en separat TSession til hver af disse. Dog skriver du ikke hvordan (via hvad) du får fat i din Access database.

Envidere KAN DU IKKE lave \"en mdi applikation hvor hver child kører i sin egen tråd? \". Hele brugerinterfacet køre ALTID via VCL i programmets \"hovedtråd\". Når du således skal opdatere skærmen (dine MDI-forms) fra dine tråde så skal dette foregå med \"Syncronize\". Den eneste undtagelse til denne regel er hvis du opdatere direkte ved at skrive til Canvas\'en hvor denne har en Lock/Unlock der sikre at kun en tråd kan opdatere den af gangen.

Uden af kende dit program. Vil jeg gætte på at \"den rigtige måde\" ville være at lade hver MDI form starte en tråd der \"laver det der skal laves\" og så opdatere \"ejer MDI-formen\" via syncronize.

Pelle

PS: Bare spørg Lene, Flemming eller Jørgen om jeg ved hvad jeg snakker om :-)
Avatar billede logoole Nybegynder
08. marts 2001 - 11:36 #11
Nye tider... Nye muligheder... Nye udviklingsprogrammer og databaser :-)

Fandt selv ud af det... Det var slet ikke nødvendigt at bruge tråde.... Det var en fejl i erklæringen af mine variabler, som gjorde at data recorden blev delt mellem mine childs!
Avatar billede pellelil Nybegynder
08. marts 2001 - 11:45 #12
logoole> Nye tider? er i ikke på vej til at kigge Visual Dataflex? er Delphi i firma-øjemed eller privat?

Avatar billede logoole Nybegynder
08. marts 2001 - 11:51 #13
lad os bare sige at vi har mange jern i ilden!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester