יחס ישיר לכמות התהליכים הרצים במחשב .
הפעולות לא מבוצעות במקביל , אלא באותו Thread - פשוט התוכנית שלך נכנסת ל - Pause עד שהיא מקבלת את רשות העיבוד שוב .ניהול המשאבים של Windows לא עובד ב - TimeSlices (שימוש לפי זמן) או בשיטת ה - Priority (ניהול עדיפויות לתהליכים) , אלא בצורה שיתופית , ז"א בצורה כזו שתהליך יקח את כל משאבי ה - CPU שהוא צריך , ומתי שהוא רוצה (מסיים) הוא מעביר את הרשות לתהליך אחר .
העברת הרשות לתהליך אחר מתבצעת אוטומטית ע"י מערכת ההפעלה בכל גישה של התוכנית לפונקציה חיצונית של מערכת ההפעלה .
ב - VB ניתן להעביר את הרשות לתהליך אחר באופן יזום ע"י קריאה לפונקצית DoEvents שבעצם קוראת לפונקציה חיצונית של מערכת ההפעלה על מנת להעביר את הרשות לתהליכים הבאים בתור .
לא ראיתי את הקוד שלך , אז אני לא יודע כל כך מה עוד ניתן לשפר , בכל זאת היא תוכנית מאוד קצרה ....
אבל בכל מקרה , אפשר לשפר (בהרבה) את מהירות הביצוע של התוכנית בעזרת שימוש נכון ב - DoEvents .
נראה לי שבכל ריצה בלולאה אתה קורא לשגרת ה - DoEvents , מה שגורע מאוד בביצועים .
אני ממליץ לך לנהל מונה שרק בכל 100/200 (או כמה שצריך , אני צריך לראות את הקוד כדי לראות בדיוק) פעמים שהלולאה רצה הוא יקרא ל - DoEvents . ולא בכל פעם .
אגב , ראיתי שרשמת שלא הבנת משהו בשיפור ביצועים בשרשור המחרוזות , תסביר מה הבעיה בדיוק באשכול המתאים ואני ישמח להסביר לך יותר בפירוט .
בהצלחה .
