ABA


"איך אני מגשר בין Threads ב.NET"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #14033 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 14033
ScOrPiOn-m1 
חבר מתאריך 26.11.10
7 הודעות
   16:50   03.04.07   
אל הפורום  
  איך אני מגשר בין Threads ב.NET  
 
   ערכתי לאחרונה בתאריך 03.04.07 בשעה 16:50 בברכה, ScOrPiOn-m1
 
ישנה פונקציה מסויימת שרצה בTHREAD מסויים שיצרתי. עכשיו אותה הפונקציה בשלב מסויים משימה ערך כלשהו אל תוך פקד שנוצר הריי בTHREAD הראשי על הFORM.
עכשיו הדבר הזה מקפיץ לי EXCEPTION כפי שבודאי מתכנתים מנוסים יודעים.
עכשיו השאלה המתבקשת היא: איך אני ניגש לאובייקט ששייך לTHREAD אחר מתוך THREAD מסויים?

ויש למישהו EBOOK שיכול יותר לעזור לי עם MultiThreading ? (עדיף בC#)
או להמליץ לי ?


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

  האשכול     מחבר     תאריך כתיבה     מספר  
  כנס עידן_הכלי 03.04.07 20:13 1
     אתה מתכוון ליצור מופע שלו תוך כדיי ריצה ב THREAD ScOrPiOn-m1  04.04.07 11:57 3
         כנס עידן_הכלי 04.04.07 18:54 9
  אתה לא יכול ליצור ת'ראד שני ולשנות איתו ערכים בפקדים Nesher  03.04.07 20:37 2
     חשבתי בהתחלה שזה ממשק אבל למעשה זה ScOrPiOn-m1  04.04.07 12:04 4
         זה מוגדר כפקד לכל דבר... Nesher  04.04.07 12:22 6
             תודה אחי אני אשתמש בזה ! ScOrPiOn-m1  04.04.07 12:32 7
                 בבקשה Nesher  04.04.07 18:14 8
     הסתכלתי בMSDN על volatile ScOrPiOn-m1  04.04.07 12:10 5
         לא כל כך מומלץ להשתמש בזה, זה בעייתי מבחינת ביצועים... אופירוש 05.04.07 01:02 10
             עקרונית... ScOrPiOn-m1  05.04.07 19:34 11

       
עידן_הכלי

   20:13   03.04.07   
אל הפורום  
  1. כנס  
בתגובה להודעה מספר 0
 
   קודם כל תוודא שיש לך מנגנון סינכרון בין התרדים, למנוע מצב של גישה לפקד שלא קיים.

ובשביל לשהמערכת תזהה את הפקד, רוב הסיכויים שתצטרך קודם להגדיר אותו גלובלית, ואז ליצור מופע שלו תוך כדי ריצה.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ScOrPiOn-m1 
חבר מתאריך 26.11.10
7 הודעות
   11:57   04.04.07   
אל הפורום  
  3. אתה מתכוון ליצור מופע שלו תוך כדיי ריצה ב THREAD  
בתגובה להודעה מספר 1
 
   שאני רוצה לעבוד איתו בו ?
אין אפשרות לגשת לאובייקטים ששיכים לTHREAD מסויים ?


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

   18:54   04.04.07   
אל הפורום  
  9. כנס  
בתגובה להודעה מספר 3
 
   אני לא מבין איך אתה רוצה לגשת לאובייקט שיכול להיות שהוא עדיין לא נוצר,

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


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Nesher  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 2.7.02
2 הודעות, 24 פידבק
   20:37   03.04.07   
אל הפורום  
  2. אתה לא יכול ליצור ת'ראד שני ולשנות איתו ערכים בפקדים  
בתגובה להודעה מספר 0
 
ערכתי לאחרונה בתאריך 03.04.07 בשעה 20:38 בברכה, Nesher
 
(כמו ProgressBar או TextBox וכו'...) זה לא תקין
הפיתרון של מיקרוסופט לבעיה הזאת
BackgroundWorker
תוסיף אותו לפרוייקט שלך ותממש את כל 3 הפונ' שלו
ככה תוכל באופן נכון ותקין לעשות עידכונים לפקדים עם "ת'ראד" אחר
בהצלחה
כמובן שזה ב-2005 לגבי 2003 לא נראה לי שזה קיים
בכלליות עדיף לעבוד עם 2005, 2003 מאוד מיותר מולו


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ScOrPiOn-m1 
חבר מתאריך 26.11.10
7 הודעות
   12:04   04.04.07   
אל הפורום  
  4. חשבתי בהתחלה שזה ממשק אבל למעשה זה  
בתגובה להודעה מספר 2
 
   ערכתי לאחרונה בתאריך 04.04.07 בשעה 12:12 בברכה, ScOrPiOn-m1
 
CLASS אני מניח שהתכוונת ליצור ממנו אובייקט ולא לממש אותו.

והאם את הפקדים שמאותחלים לי אני צריך להגדיר אותם בתוך פונקציה שרצה לי מTHREAD שהוא BACKGROUND ?
והאם יש קשר בין הBACKGROUNDWORKER לTHREADS שהם BACKGROUND ?

וכמובן, אני עובד עם 2005

תודה לשניכם


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Nesher  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 2.7.02
2 הודעות, 24 פידבק
   12:22   04.04.07   
אל הפורום  
  6. זה מוגדר כפקד לכל דבר...  
בתגובה להודעה מספר 4
 
תסתכל ב-Toolbox
תוכל לראות שזה מופיע שם כשאתה על טופס
במאפיינים שלו תלך לפונ' שצריך לממש (הכפתור בצורת ברק) וזהו
יותר עדיף מאשר הפיתרון האחר שמצאת


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ScOrPiOn-m1 
חבר מתאריך 26.11.10
7 הודעות
   12:32   04.04.07   
אל הפורום  
  7. תודה אחי אני אשתמש בזה !  
בתגובה להודעה מספר 6
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Nesher  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 2.7.02
2 הודעות, 24 פידבק
   18:14   04.04.07   
אל הפורום  
  8. בבקשה  
בתגובה להודעה מספר 7
 


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ScOrPiOn-m1 
חבר מתאריך 26.11.10
7 הודעות
   12:10   04.04.07   
אל הפורום  
  5. הסתכלתי בMSDN על volatile  
בתגובה להודעה מספר 2
 
   יצא לך להגדיר אובייקטים או פקדים שהם VOLATILE ?

רשום את הדבר הבא :
The volatile keyword indicates that a field might be modified by multiple concurrently executing threads. Fields that are declared volatile are not subject to compiler optimizations that assume access by a single thread. This ensures that the most up-to-date value is present in the field at all times.

שזה עושה את העבודה שביקשתי... השאלה היא האם זה "נכון" תיכנותית להשתמש בזה מבחינת אופטימיזציה וכו...


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

   01:02   05.04.07   
אל הפורום  
  10. לא כל כך מומלץ להשתמש בזה, זה בעייתי מבחינת ביצועים...  
בתגובה להודעה מספר 5
 
   תלוי איזה אובייקט אתה שם בתוכו.

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


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ScOrPiOn-m1 
חבר מתאריך 26.11.10
7 הודעות
   19:34   05.04.07   
אל הפורום  
  11. עקרונית...  
בתגובה להודעה מספר 10
 
   ערכתי לאחרונה בתאריך 05.04.07 בשעה 19:35 בברכה, ScOrPiOn-m1
 
הUI הוא בשבילי בלבד תכל'ס... זוהי אפליקציה שמריצה סריקה בקבצים... הPROGRESS BAR לדוגמא הוא בשביל שתהייה לי אינדיקציה איפה הוא נמצא. עוד LIST VIEW כדיי לראות אילו קבצים רצים עכשיו ... וכו..

עכשיו ישנם לדוג' לייבלים שמכילים נתונים הקשורים לקובץ ספציפי שלא מתעדכנים לי אם אני לא משייך אותם לTHREAD אחר. ומתוך הפונקציה שרצה לי בTHREAD נפרד שיצרתי אני מעדכן את אותו הלייבל... אני יודע שזה לא הכי חכם ואני כבר שיניתי את החלק הזה בארכיטקטורה. אני רק רוצה לדעת אם מבחינת רעיון היפוטתי ניתן לגשת לTHREAD מתוך THREAD אחר...

אין לי זמן לבדוק את הרעיוניות שהציעו לי כי אני מצייר אוטומטיים מחור*נים


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

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

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



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