פורסם 2006 במאי 2419 שנים שלום לכם.אני בונה תוכנית מסויימת ואני צריך להוסיף במקביל לתוכנית פעולה שנניח כל 10 MSEC תפעל.נניח יש תוכנית רגילה מדפיסה קולטת לא משנה, וכל פרק זמן מסוים מפסיק את הפעולה (לזמן קצר) ופונה למשהו אחר (כמו עידכון של משהו או קריאה לפונקציה) ואזחוזר לאיפה שהפסיק, ואז זה נראה כאילו זה עובד במקביל.אני לא יודע בדיוק איך להסביר, נראה לי קוראים לזה ט/תרדינג.אז אפשר איזה הסבר ואיך ליישם את זה? תודה רבה.
פורסם 2006 במאי 2419 שנים כן, צריך להשתמש ב-threads (אתה לא חייב, כי אתה יכול לממש את זה בעצמך, אבל מומלץ ככה).באיזו שפה אתה כותב? (זה מאוד שונה משפה לשפה, וגם בין סביבות עבודה שונות)
פורסם 2006 במאי 2519 שנים מחבר שכחתי לציין, אני עובד ב בc++. בבית אני עובד עם DEVCPP לבנתיים (עוד מעט נעבור ל VC++)ובבית הספר ב VC++ 6.תודה רבה.
פורסם 2006 במאי 2519 שנים http://www.google.co.il/search?q=threads+c%2B%2B&start=0&ie=utf-8&oe=utf-8&client=firefox-a&rls=org.mozilla:he-IL:official
פורסם 2006 במאי 2519 שנים ב- C++ אין ספרייה שנותנת לך threads.תחת windows יש לך פונקציות לייצירת threads כמו beginthread.אם אתה משתמש ב- MFC, אז שם יש wrappers קצת יותר נוחים אליהם עם CWinThreadאופציה אחרת לגמרי היא עבודה עם Interrupts, שהן יותר מדויקות, יותר מסוכנות, אבל יש ספריות כמו Allegro שמקלות את העבודה איתן.
פורסם 2006 במאי 2519 שנים מחבר אוקיי תודה רבה.חשבתי זה הולך להיות פשוט, אני אקרא על זה מחר.מישהו מכיר אולי איזה ספריה שעושה את זה כבר?נניח לבצע קוד כל פרק זמן מסויים, מה אתה אומרים עולה לכם משהו לראש? משהו מוכן אני מתכוון.שוב תודה רבה.
פורסם 2006 במאי 2619 שנים multithreading הוא רחוק מלהיות פשוט.יש עוד אופציה ב-windows: אפשר לאתחל timer דרך קריאת מ"ה ולהגיד לו לקרוא לפונקציה מסויימת אחרי פרק זמן מסויים. תבדוק אם זה מספיק לך.
פורסם 2006 במאי 2619 שנים נשמע לי שאתה לא צריך את כל אלה. חבל לך להסתבך עם ת'רדים (למרות שבאופן כללי זה יכול להיות מאוד מעניין ומועיל ללמוד את הנושא, אז בלי קשר הייתי ממליץ ללמוד את זה).ממה שהבנתי על התוכנית שלך, אתה יכול לדגום את הזמן בתחילתה, וכל לולאה לדגום את הזמן ולבדוק כמה זמן עבר, ואם עבר יותר מ-X זמן, תקרא לפונקציה שלך. ככה אין לך בעיות שאתה צריך לדאוג להן במקרה של ת'רדים. אגב, כמובן שלפני שאתה קורא לפונקציה, רצוי לשמור את הזמן האחרון שדגמת כ"זמן אפס"...
פורסם 2006 במאי 2619 שנים מחבר חשבתי על זה, ואחרי שהבהרתם לי שטרדים זה נושא מסובך אני אוותר על זה.בקשר לטיימר, חשבתי גם על משהו כזה, הקוד יהיה פחות אלגנטי כי אני אצטרך לפזר IF אחרי כל קטע שעשוי להיות ארוך.איך אני עובד עם זה? אני זוכר יש ספריה שקוראים לה TIMER אפשר הסבר קצרצר על זה? איך להכניס את הזמן הנוכחי לתוך משתנה (רגיל או מיוחד)ולבצע עליו פעולת חיסור ואיפוס.תודה רבה ויום טוב.
פורסם 2006 במאי 2619 שנים ישנה פונקציה בשם time שמחזירה לך את מספר השניות הנוכחי. כדי להשתמש בה:#include <time.h>כדי לבדוק אם עברו שתי שניות:int t = time(NULL);if(time(NULL)==t+2)cout<<"2 secs passed.";
פורסם 2006 במאי 2619 שנים אני הייתי נותן למעבד\מערכת ההפעלה לעשות את שלהם במקום לרשום שורה ככה שורה ככה.
פורסם 2006 במאי 2719 שנים אם תתן קצת יותר פרטים על מה בדיוק אתה מנסה לעשות, נראה לי שיהיה אפשר לעזור לך יותר.
פורסם 2006 במאי 2719 שנים מחבר מספר שניות לא יעזור לי, אני צריך לפי מאיות.אז ככה התוכנה היא בשביל משחק איקס עיגול שמשוחק על לוח משחק שבניתי, הלוח מתחבר למחשב.עכשיו על הלוח ירשם התוצאה ליד כל שחקן עם צג 7SEG עכשיו יש לי 4 חוטים ששולטים עלייהם, 3 שולטים על המידע שיוצג והרביעי על איזה צג יפעל.כדי שזה יראה כאילו שנייהם פועלים בו זמנית אני אצטרך לעשות את המעבר שלהם בפחות מ 30MSEC (משהו באזור). חשבתי לבצע את זה בטרד אבל הבנתישזה מסובך, עם הספריה של ה TIME זה נראה לי אפשרי.עכשיו איך מוצאים את מספר המאיות שחלפו מתחילת התוכנית? ובכל קטע שעשוי להיות בעל זמן רב אני ישים את ההפניה לפונקציה שתבצע את זה.מקווה שהסברתי טוב, אם משהו לא מובן אני יסביר שוב.
פורסם 2006 במאי 2719 שנים יש בספריית time.h מספר פונקציות שיכולות להחזיר זמן ברזולוציה גבוהה יותר משניות.אבל! קח בחשבון שבתלות במ"ה וכו', הדיוק של השיטה הוא מוגבל.באיזה פלטפורמה (מ"ה + חומרה) התוכנה שלך תרוץ?
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.