Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Timer

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
17.12.2005, 22:24 Uhr
~hahaha
Gast


Hi,

will eine Funktion, die nach Aufruf 15 sekunden wartet, und dann eine andere aufruft.
Aba kein sleep oder sowas, weil das programm dann völlig stehen bleibt. ich will nebenbei noch andere funktionen durch buttons aufrufen können,

danke
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
17.12.2005, 22:40 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


geht nicht in ansi-c... musst du OS-abhängig machen. Sag uns dein OS und wir verschieben dich ins entsprechende Forum... Wenn du dich selbst zum Thema informieren willst such nach Threads/Prozessen...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
17.12.2005, 22:43 Uhr
Spacelord
Hoffnungsloser Fall


Hi,
unter Windows gibt es ne feine Funktion die das mit den Threads für einen hinter den Reihen erledigt.
Sofern es für Windows sein soll such mal nach CreateTimerQueue und CreateTimerQueueTimer.

MfG Spacelord
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
17.12.2005, 22:45 Uhr
~hahaha
Gast


Was soll ich machen? den OS? was ist das?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
17.12.2005, 22:46 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


Übersetzt heisst das Betriebssystem
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
17.12.2005, 22:51 Uhr
~hahaha
Gast


XP.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
17.12.2005, 22:58 Uhr
Spacelord
Hoffnungsloser Fall


Dann ist das TimerQueue Gelumpe die Lösung für dein Problem.
Oder du erstellst halt wie von Windalf vorgeschlagen selber nen Thread und wartest in diesem dann 15 Sekunden.

MfG Spacelord
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
17.12.2005, 23:00 Uhr
~hahaha
Gast


Und wie geht das?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
17.12.2005, 23:16 Uhr
Spacelord
Hoffnungsloser Fall


Also irgendwie wusste ich dass diese Frage kommt


C++:
#define _WIN32_WINNT  0x0500

#include <windows.h>
#include <iostream>
using namespace std;


bool done=false;//nicht synchronisiert!!

VOID CALLBACK TimerFunc(PVOID lpParam, BOOL TimerOrWaitFired)
{
    MessageBox(NULL,"Tach Post","Tach",MB_OK);
    done=true;
}

int main()
{
    HANDLE hTimerQ=NULL;
    HANDLE hTimer =NULL;
    HANDLE event = CreateEvent(NULL,FALSE,FALSE,"Dummy");
    if(event)
    {
        hTimerQ= CreateTimerQueue();
        if(hTimerQ)
            CreateTimerQueueTimer(&hTimer, hTimerQ,(WAITORTIMERCALLBACK)TimerFunc, 0, 15000,0, WT_EXECUTEINIOTHREAD);
        cout<<"Timer gestartet: \t\t"<<GetTickCount()<<endl;
    }
    else
        return -1;

    for(int i=0;!done;i++)
        cout<<i<<endl;

    return 0;
}




Das kleine Beispiel startet den Timer und fängt dann einfach an ne blöde Zahl hochzuzählen und auszugeben.Nach 15 Sekunden wird dann ne Message Box angezeigt.sobald der Ok Button der Message Box gedrückt wurde wird in der Timerfunktion die bool Variable die in der for Schleife des main Threads abgefragt wird auf false gesetzt und somit gestoppt.
Normalerweise müsste die bool Variable noch synchronisiert werden aber für das Beispiel wollen wir ja mal die Kirche im Dorf lassen.

Bearbeitung von Spacelord:

Das event ist übrigens überflüssig...der Code stammt aus nem älteren Beispiel und ist nur etwas angepasst.




Von Eigeninitiative will ich jetzt erst garnicht anfangen....
Ich bin ohnehin langsam paranoid und vermute überall nur noch Trolle....

MfG Spacelord
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.

Dieser Post wurde am 17.12.2005 um 23:25 Uhr von Spacelord editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
03.01.2006, 15:37 Uhr
typecast
aka loddab
(Operator)


->
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: