נושאים פעיליםנושאים פעילים  הצגת רשימה של חברי הפורוםרשימת משתמשים  חיפוש בפורוםחיפוש  עזרהעזרה
  הרשמההרשמה  התחברותהתחברות RSS עדכונים
תיכנות
RSS UnderWarrior Forums : RSS תיכנות
נושא

נושא: איך אני יכול לעשות Timer מדומה בC++

שליחת תגובהשליחת נושא חדש
כותב
הודעה << נושא קודם | נושא הבא >>
dudubs
משתמש מתחיל
משתמש מתחיל


הצטרף / הצטרפה: 10 April 2005
משתמש: מנותק/ת
הודעות: 23
נשלח בתאריך: 19 April 2005 בשעה 12:16 | IP רשוּם
ציטוט dudubs

או שיש כבר בנוי?

וחוץ מ

while (1)

{

}

כי זה עוצר את התוכנית עד שעוצרים אותה

וזה בשביל המתנה של חיבורים וקבלת מידע בקיצור לבנות את הארועים של הsocket בC++

חזרה לתחילת העמוד הצג את כרטיס החבר של dudubs חפש הודעות אחרות של dudubs
 
Alias
משתמש חבר
משתמש חבר
סמל אישי

הצטרף / הצטרפה: 13 January 2005
משתמש: מנותק/ת
הודעות: 344
נשלח בתאריך: 19 April 2005 בשעה 16:51 | IP רשוּם
ציטוט Alias

http://www.newton.dep.anl.gov/askasci/comp99/CS042.htm
עוזר?
חזרה לתחילת העמוד הצג את כרטיס החבר של Alias חפש הודעות אחרות של Alias בקר בדף הבית של Alias
 
dudubs
משתמש מתחיל
משתמש מתחיל


הצטרף / הצטרפה: 10 April 2005
משתמש: מנותק/ת
הודעות: 23
נשלח בתאריך: 19 April 2005 בשעה 22:08 | IP רשוּם
ציטוט dudubs

אז זהו שזה עוצר א כל הארועים האחרים

נגיד אני מפעיל את הטיימר הזה ככה:

timer(110); /שעובר של while עד שמגיע לאותו זמן שהוא צריך לצאת מהלולאה

cout << "aa"; // רק עד שזה יגיע לאותו זמן זה יגיע

אני צריך משהו כמו Sleep ב WScript או ב כמו הtimer של Visual Basic

חזרה לתחילת העמוד הצג את כרטיס החבר של dudubs חפש הודעות אחרות של dudubs
 
Alias
משתמש חבר
משתמש חבר
סמל אישי

הצטרף / הצטרפה: 13 January 2005
משתמש: מנותק/ת
הודעות: 344
נשלח בתאריך: 20 April 2005 בשעה 01:55 | IP רשוּם
ציטוט Alias

לא הבנתי כ"כ מה אמרת...
אתה מתכוון שכשתריץ תוכנית היא תרוץ עד שהיא תגיע לקריאה לTIMER ואז היא תחכה כמה שניות שהגדרת ואז היא תמשיך לרוץ?

אם אתה על ווינדוס תוסיף את ההאדר windows.h
וכשאתה קורא לפונקציה של העצירה תעשה Sleep(1000);
כל 1000 זה שנייה אחת.

הנה דוגמא לתוכנית שמחכה 10 שניות ומדפיסה מחרוזת אח"כ:
קוד:

int main()
{
     Sleep(10000);
     printf("bla\n");
     return 0;
}

נ.ב. ה-S ב-SLEEP חייבת להיות אות גדולה!
חזרה לתחילת העמוד הצג את כרטיס החבר של Alias חפש הודעות אחרות של Alias בקר בדף הבית של Alias
 
dudubs
משתמש מתחיל
משתמש מתחיל


הצטרף / הצטרפה: 10 April 2005
משתמש: מנותק/ת
הודעות: 23
נשלח בתאריך: 20 April 2005 בשעה 10:25 | IP רשוּם
ציטוט dudubs

לא מצליח לי אז הנה דוגמא אולי תבין:

#include <cstdlib>
#include <iostream>
#include <windows.h>
using namespace std;
void start()
{
     int i;
     i++;
     cout << i << "\n";
     Sleep(1000);
     start();
}
int main(int argc, char *argv[])
{
    start();
    cout << "a";
}

עכשיו זה מדפיס רק את הi ולא ממשיך לדפיס את ה"a"

יש אפשרות כזו שזה ימשיך לקרוא לstart()

וגם להדפיס את ה"a"

חזרה לתחילת העמוד הצג את כרטיס החבר של dudubs חפש הודעות אחרות של dudubs
 
cp77fk4r
מנהל פורומים
מנהל פורומים
סמל אישי
מנהל פורום אבטחת מידע

הצטרף / הצטרפה: 09 April 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 501
נשלח בתאריך: 20 April 2005 בשעה 10:47 | IP רשוּם
ציטוט cp77fk4r

תשתמש בתג-הקוד, זה ממש מבולגן..

__________________
[Th3rE R mAnY wAyZ 2 r3aD oN3 EmPty p4gE]
חזרה לתחילת העמוד הצג את כרטיס החבר של cp77fk4r חפש הודעות אחרות של cp77fk4r בקר בדף הבית של cp77fk4r
 
Alias
משתמש חבר
משתמש חבר
סמל אישי

הצטרף / הצטרפה: 13 January 2005
משתמש: מנותק/ת
הודעות: 344
נשלח בתאריך: 20 April 2005 בשעה 13:15 | IP רשוּם
ציטוט Alias

קוד:

#include <cstdlib>
#include <iostream>
#include <windows.h>
using namespace std;
void start()
{
     int i;
     i++;
     cout << i << "\n";
     Sleep(1000);
     start();
}
int main(int argc, char *argv[])
{
    start();
    cout << "a";
}

שוב לא ממש הבנתי את הבעיה אבל אם הבעיה היא שהתוכנית אף פעם לא נגמרת אז תוריד את start(); מסוף הפונקציה strat כי אז זה לולאה אין סופית...
חזרה לתחילת העמוד הצג את כרטיס החבר של Alias חפש הודעות אחרות של Alias בקר בדף הבית של Alias
 
dudubs
משתמש מתחיל
משתמש מתחיל


הצטרף / הצטרפה: 10 April 2005
משתמש: מנותק/ת
הודעות: 23
נשלח בתאריך: 25 April 2005 בשעה 14:54 | IP רשוּם
ציטוט dudubs

בגלל זה אני רוצה טיימר בנתיים זה יבצע משימות אחרות

חזרה לתחילת העמוד הצג את כרטיס החבר של dudubs חפש הודעות אחרות של dudubs
 
ניר
מנהל האתר
מנהל האתר
סמל אישי

הצטרף / הצטרפה: 12 January 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 3296
נשלח בתאריך: 25 April 2005 בשעה 16:21 | IP רשוּם
ציטוט ניר

נראה שאתה צריך פשוט שני תהליכים / חוטים בתוכנית שלך
חזרה לתחילת העמוד הצג את כרטיס החבר של ניר חפש הודעות אחרות של ניר בקר בדף הבית של ניר
 
Alias
משתמש חבר
משתמש חבר
סמל אישי

הצטרף / הצטרפה: 13 January 2005
משתמש: מנותק/ת
הודעות: 344
נשלח בתאריך: 26 April 2005 בשעה 04:58 | IP רשוּם
ציטוט Alias

עכשיו היית יותר ברור חשבתי שזה הכיוון אבל לא הייתי בטוח... בכל מקרה גם אותי עניין הנושא ואמרו לי שזה צריך להתבצע בעזרת MultiThreading לא הספקתי ללמוד את זה מאז אבל מחיפוש מהיר מצאתי משהו שאולי יעזור לך:
http://mail.ntsoft.dk/~hdo/Multithreading_with_C_and_Win32.h tm
וממה שראיתי לא חסר חומר על הנושא.

תהנה
חזרה לתחילת העמוד הצג את כרטיס החבר של Alias חפש הודעות אחרות של Alias בקר בדף הבית של Alias
 

אם ברצונך להגיב לנושא זה עליך קודם להתחבר
אם אינך רשום/ה כבר עליך להרשם

  שליחת תגובהשליחת נושא חדש
גרסת הדפסה גרסת הדפסה

קפיצה לפורום
אינך יכול/ה לשלוח נושאים חדשים בפורום זה
אינך יכול/ה להגיב לנושאים בפורום זה
אינך יכול/ה למחוק את הודעותיך ותגוביך בפורום זה
אינך יכול/ה לערוך את הודעותיך ותגובותיך בפורום זה
אינך יכול/ה לצור סקרים בפורום זה
אינך יכול/ה להצביע בסקרים בפורום זה