ABA


"|C#| בעת קריאה לפונקציה, התוכנה עושה Freeze."
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #10327 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 10327
dvir8
חבר מתאריך 13.5.02
5929 הודעות
   13:55   25.03.11   
אל הפורום  
  |C#| בעת קריאה לפונקציה, התוכנה עושה Freeze.  
 
   שלום לכולם,

במסגרת עבודתי בניתי קובץ שמתחבר למסד נתונים ב SQL
ומריץ פקודה בתוכו.

הקובץ מציג כפתור שבלחיצה עליו נוצרת ההתחברות למסד, וביצוע הפקודה.

בצד השמאלי של ה Form הנחתי label שצריך לתת לי מצב התקדמות לגבי השלבים.

לדוגמא:
כשנוצרת ההתחברות ה label.text משתנה ל Connection Established
לאחר הרצת הפקודה ה label.text משתנה ל Execute Succeeded

הבעיה:
בעת ההתחברות למסד והרצת הפקודה התוכנה פשוט קופאת, מבצעת את הפקודה ומצליחה, אך מציגה את ההודעה האחרונה ש Execute Succeeded.

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


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  הסבר עידן_הכלי 25.03.11 15:13 1
  אתה לא יכול לשנות את ה-GUI מתוך Thread שאינו Nesher  25.03.11 18:54 2
  תודה רבה לשניכם אני אבדוק את האתרים שהמלצתם dvir8 25.03.11 20:41 3

       
עידן_הכלי

   15:13   25.03.11   
אל הפורום  
  1. הסבר  
בתגובה להודעה מספר 0
 
   את התצוגה הגרפית שאתה רואה (GUI) מייצר Thread שאחראי על העדכון של המסך, ברגע שאתה קורא לפונקציה מסויימת אז ה Thread מפסיק לעדכן את המסך ועובר לעשות את מה שהפונקציה אמורה לעשות.

כדי לעשות משהו ותוך כדי לעדכן את ה GUI, אתה צריך לעשות את העבודה ברקע, וזה אומר לעשות את זה ב Thread נפרד.

להבין טוב יותר תחפש בגוגל על Multi Threading.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Nesher  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 2.7.02
2 הודעות, 24 פידבק
   18:54   25.03.11   
אל הפורום  
  2. אתה לא יכול לשנות את ה-GUI מתוך Thread שאינו  
בתגובה להודעה מספר 0
 
ה-Thread הראשי של התוכנית
לכן יש צורך לבצע סוג של "מעקף" לבעיה הזאת...
כאן יש כל הדוגמאות האפשריות
http://stackoverflow.com/questions/661561/how-to-update-gui-from-another-thread-in-c
חיפוש מעמיק יותר יעזור לך למצוא תשובה יותר קלה אם קשה לך עם אלה


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
dvir8
חבר מתאריך 13.5.02
5929 הודעות
   20:41   25.03.11   
אל הפורום  
  3. תודה רבה לשניכם אני אבדוק את האתרים שהמלצתם  
בתגובה להודעה מספר 0
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net