פורסם 2012 בינואר 2513 שנים יש לי קוד שעושה משהו מסויים ומשתמש ב-delay בין פעולה לפעולה, עכשיו מה שקורה ז זה אמור להיות מאוד מאוד מדוייק ה- delay ובגלל כל מיני שורות קוד באמצע הזמן מתארך לי למשל אם הכל צריך לרוץ 50 דק' אז זה יוצא עוד איזה דקה או שתיים שזה קריטי לי, מה שעשיתי זה לשים datetime מסויים איפשהו בקוד ועוד אחד ממש לפני ה- delay ואז הוריד מהזמן של ה- delay את הזמן בין 2 ה- datetime וככה הקוד ירוץ לי באופן יותר מדוייק אז אחרי 2 ה- datetime ששמתי יש לי את השורת קוד הבאה:double dif = d2.Subtract(d1).TotalMilliseconds;כאשר D1 ו-D2 הם ה-DateTime אבל ההבדל יוצא לי כל הזמן 0 ואני לא מבין למה.
פורסם 2012 בינואר 2513 שנים יכול להיות שהקוד רץ כל כך מהר שהשעון לא הספיק להתעדכן (המחשב מריץ מיליארדי פעולות בשנייה אחת, דהיינו מיליוני פעולות כל מילי שנייה).קצת קשה לומר בדיוק מה הבעיה בלי לראות את השאר הקוד.
פורסם 2012 בינואר 2513 שנים נשמע של-DateTime.Now אין רזולוציה מספיקה למה שאתה רוצה למדוד. נכון שהוא מחזיר מילישניות אבל זה לא אומר שהוא באמת מתעדכן כל מילישניה. לפי זה:http://msdn.microsoft.com/en-us/library/system.datetime.now.aspxבמערכת מודרנית הוא מתעדכן רק כל 10 מילישניות.אם מה שאתה מנסה למדוד הוא פעולה שחוזרת על עצמה (כמו לולאה) אז יותר מדוייק במקום למדוד כל פעולה בנפרד למדוד כל 1000 פעולות (למשל) ולעשות את החשבון בהתאם. אפשרות אחרת היא להשתמש ב-System.Diagnostics.Stopwatch שאמור להיות מדוייק יותר.אם מראש אתה יודע את הזמן המדוייק שהריצה אמורה לקחת אז לא אמורה להיות בעיה לעשות מערכת שגם מודדת את הפספוס של עצמה ומתקנת תוך כדי ריצה.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.