Avatar billede morten_v Nybegynder
11. august 2004 - 22:15 Der er 13 kommentarer

Simpel implementering af tråde?

Hey, første post her :)

Er i gang med at implementere et matematisk modellerings værktøj for DFU. Programmet sluger pt. 100% processor tid mens "kalibreringen" køre. Selve koden er en kombinatorik der kører 1296 differential ligninger med brugerdefineret precision. Dvs. brugern kan sætte precisionen så højt at kalibreringen targer op til en times tid.
Som det er nu kan brugeren ikke afbryde kalibrerings funktionen når den først er sat i gang uden at bruge task manager(flovt) pga. programmet "fryser" indtil kalibreringen er frædig.
Jeg tænkte så på om ikke jeg kunne bruge tråde til at løse mit problem, men efter lang tids søgen på google og div. forums har jeg stadig ikke kunne finde et ordentligt eksempel til c++.
(Jeg implementerer mit program i Borland builder btw.)

jeg ville være meget glad for enten at få et konkret eksempel eller hvis der er en der kender et site der forklarer hvordan jeg kan indkapsle en funktion enten i en tråd, eller hvis der findes en anden måde at begrænse mængden af processor tid funktionen må bruge i forhold til resten af programmet.
Hvis jeg ikke har givet tilstrækkeligt info. så sig endelig til :)
Avatar billede arne_v Ekspert
11. august 2004 - 22:25 #1
I Win32 starter du en tråd med CreateThread funktionen.
Avatar billede arne_v Ekspert
11. august 2004 - 22:32 #3
Jeg prøver lige at lave et eksempel.
Avatar billede bertelbrander Novice
11. august 2004 - 22:39 #4
Ellers har jeg et lille eksempel her:

http://home20.inet.tele.dk/midgaard/snip/thread.html

& et tillykke til Arne.
Avatar billede arne_v Ekspert
11. august 2004 - 22:50 #5
Mit eksempel kom til at se ud som:

#include <iostream>

using namespace std;

#include <windows.h>

DWORD __stdcall tfunc(void *p)
{
  int *arg = (int *)p;
  cout << *arg << endl;
  return 0;
}

int main()
{
  int arg;
  HANDLE h;
  DWORD id;
  arg = 123;
  h = CreateThread(NULL,0,tfunc,&arg,0,&id);
  WaitForSingleObject(h,INFINITE);
  return 0;
}
Avatar billede arne_v Ekspert
11. august 2004 - 22:50 #6
bertel>

jo tak
Avatar billede morten_v Nybegynder
11. august 2004 - 23:16 #7
mange tak, jeg kigger på eksemplerne nu :)
Avatar billede arne_v Ekspert
13. august 2004 - 20:01 #8
OK ?
Avatar billede morten_v Nybegynder
13. august 2004 - 21:40 #9
Har ikke fået det implementeret færdigt endnu, har haft meget travlt. Jeg skal nok vende tilbage når jeg har fået det til at virke eller løber ind i problemer. Det er rigtigt fedt endelig at have noget at arbejde med, takker mange gange.
Avatar billede arne_v Ekspert
22. august 2004 - 11:53 #10
Kommet videre ?
Avatar billede morten_v Nybegynder
22. august 2004 - 12:31 #11
Undskyld jeg ikke har svaret tildligere Arne. Jeg har været i Stockholm hele sidste uge uden internet adgang. Jeg sidder og implementerer dit eksempel as we speak. Skal nok vende tilbage senere i dag med en update :)
Avatar billede arne_v Ekspert
04. september 2004 - 11:47 #12
?
Avatar billede arne_v Ekspert
11. september 2004 - 21:59 #13
??
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





White paper
Tidsbegrænset kampagne: Overvejer du at udskifte eller tilføje printere i din forretning? Vi kan tilbyde én eller flere maskiner gratis