צריך עזרה קטנה עם Timer ב-C# - עמוד 2 - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

צריך עזרה קטנה עם Timer ב-C#


gshhar

Recommended Posts

כן, בתוך ה-if הראשון


public void timer1_Tick(object sender, EventArgs e)
{
if (groupBoxSelect.Enabled == false)
{
timer1.Start();
if (nextFileDelay != null)
{
double delayForFile = nextFileDelay.nextFileIn;




if (delayForPacket > 1)
{
labelStatus.Text = "Waiting for next file... " + "(" + (delayForPacket) + " milliseconds)";
}
else
{
timer1.Stop();
}




delayForFile--;
}
}
}

קישור לתוכן
שתף באתרים אחרים

בסופו של דבר הצלחתי אבל יש לי בעיה קטנה שמציקה לי, לפעמים הטיימר לא מספיק לספור אחורה עד הסוף כי בנתיים כבר מגיע הזמן של הקובץ הבא להישלח אז הוא נשלח, אני חושב שזה בגלל שכשאני יודע מתי יגיע הקובץ הבא (למשל בעוד 5.5 שניות) אז מה שקורה הוא שיש לי CLASS שאני מכניס אליו את הערך הזה ויש לי BackgroundWorker שדוגם את ה-CLASS הזה וכשערך מסויים בוליאני משתנה בהתאם הוא מכניס לפעולה את הטיימר והוא סופר א מספר השניות שהוא לוקח אותם גם מאותו ה-CLASS מאחד הפרופרטי אבל כל זה כנראה לוקח כמה מילישניות וכל זה מצטבר עד שאני מאבד בספירה חצי שנייה - שנייה, השאלה שלי היא איך אני יכול להתגבר על זה ?

קישור לתוכן
שתף באתרים אחרים

או שאתה יכול לנסות להתחשב בזה בחישוב הזמן שאתה מפעיל את ה Timer.

או שאתה יכול לנסות לעבור שפה - כי באופן תיאורטי, C# וכל שפה שרצה על מכונה וירטואלית (או "מתורגמת לקוד ביניים") לא יכולה להיות Real Time אמיתית.

אתה יכול גם לנסות לשנות חלק מהמחלקות הנתונות לך (לרשת אותן ולצמצם את הפעולות שלהן), אבל זה נראה לי יותר מדי מסובך...

קישור לתוכן
שתף באתרים אחרים

לשנות שפה לא רלוונטי כרגע אז מה שנשאר לי זה להתחשב בזמן, האם הכי פשוט לעשות זה למדוד עם datetime מהזמן איך שאני יודע מתי שהקובץ הבא אמור להגיע ועד שהטיימר נכנס לפעולה ולהוריד מהזמן שהטיימר אמור לספור את הזמן הזה ?

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

×
  • צור חדש...