Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

XelVair

Frischling

  • »XelVair« ist der Autor dieses Themas

Beiträge: 46

Beruf: Student

  • Private Nachricht senden

1

06.01.2010, 01:52

[GELÖST] Parallel Prozesse abarbeiten, möglich?

Tut mir leid wenn ich euch mit meinen Fragen noch einmal belästigen muss, aber mir kam grad eine art "Runtime Clock" in den sinn, der in Sekunden anzeigt wie lange ein Programm schon läuft.

Ich weiß wie ein Prozessor den Code abarbeitet, aber immerhin schafft Windows es ja auch, die Uhr und den Internet Explorer gleichzeitig zu verwalten, oder?

Nun ja, mein Versuch sah etwa so aus:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream>
#include <windows.h>
#include <time.h>
#include <string>

using namespace std;

int runtimeclock = 0;

int runtime()
{
    while (runtimeclock != -1)
     {
     runtimeclock ++;
     Sleep(1000)
     }
return 0;
}

int main()
{
runtime();
...
cout << "The Application is running since  "<< runtimeclock << " seconds." << endl;
...


Jetzt meine Frage: Wie krieg ich eine art Zähler hin ohne dass ich main pausiere?

Danke im Voraus!

~Xel

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

2

06.01.2010, 02:05

du brauchst nicht zählen. dein zeitgeber liegt aufn mainboard und du kannst die zeit von windows abfragen(das funktioniert übrigens genau so wie bei der wand/armbanduhr mit quarz). wenn du das am anfang und am ende des programms machst und die endzeit von der startzeit subtrahierst hast du die laufzeit.

und ja man kann zwei prozesse gleichzeitig abarbeiten. das nennt sich thread und ist ein vorgeschrittenes thema.
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

XelVair

Frischling

  • »XelVair« ist der Autor dieses Themas

Beiträge: 46

Beruf: Student

  • Private Nachricht senden

3

06.01.2010, 02:10

Oh, verdammt, war ich blind, du meinst ja sicher die vergangenen Sekunden seit dem...was war es? systemstart? :P

Ja du hast recht, vielen dank dafür *top*

Würdest du mir ganz fix noch einmal den Code für die Ausgabe geben? ;)

Edit: Bin alleine drauf gekommen, vielen Dank für die Hilfe NachoMan

@ Die die es interessiert, der Code sieht ungefähr so aus:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int initialtime;
int elapsedtime;

void SetInitialTime()
{
initialtime = time(NULL);
}

int ReturnElapsedTime()
{
elapsedtime = time(NULL) - initialtime;
return elapsedtime;
}

int main() 
{
SetInitialTime();
...
cout << "The program is running since " << ReturnElapsedTime() << " seconds.";

4

06.01.2010, 10:02

Re: [GELÖST] Parallel Prozesse abarbeiten, möglich?

Zitat von »"XelVair"«

Ich weiß wie ein Prozessor den Code abarbeitet, aber immerhin schafft Windows es ja auch, die Uhr und den Internet Explorer gleichzeitig zu verwalten, oder?

Windows verwaltet mehrere Prozesse in einem Scheduler.
Eine Anwendung kann das allerdings auch, das Zauberwort(Suchwort) heißt Thread

5

06.01.2010, 10:21

Wenn du mit Thread arbeiten willst:
http://www.boost.org/doc/libs/1_41_0/doc/html/thread.html
Lieber dumm fragen, als dumm bleiben!

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

6

06.01.2010, 11:02

er wollte doch nur die Zeit messen?

Aber wenn wir schon beim Anmerkungen machen sind: Sleep(1000) heißt nur, dass er mind. 1000ms ruht. Es kann aber auch mehr sein.
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

XelVair

Frischling

  • »XelVair« ist der Autor dieses Themas

Beiträge: 46

Beruf: Student

  • Private Nachricht senden

7

06.01.2010, 13:56

Danke für die Hilfe Leute,
hätte nicht gedacht, dass da noch was kommt ;)

Ich denke mal ich werde mich an die Threads, die GUI Programmierung etc. später ranarbeien, jetzt befasse Ich mich erstmal damit, die Infrastruktur auszubauen und zu festigen.

Man schreibt sich.^^

~Xel

Werbeanzeige