עבור לתוכן

c#| הרצה של כמה פונקציות במקביל

Featured Replies

פורסם

האם יש דרך כלשהי להריץ כמה פונקציות במקביל?

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

יש דרך למנוע את זה?

פורסם

חפש בגוגל :

System.Thread

פורסם
  • מחבר

אני מכיר את הנושא.

הכלי לרוב לא עובד , כי פשוט כל התוכנה קופאת כך שאי אפשר להפעיל את הכלי.

פורסם

כדי למנוע מחלון לקפוא יש 2 אופציות:

1) להשתמש ב- WorkerBackground כדי להריץ את הקוד שלך ברקע ולא לתקוע את החלון.

2) לקרוא ל- Application.DoEvents כל כמה פעולות כדי שהמערכת תוכל לבצע את הפעולות של הדפסת החלון.

אני אוהב יותר את הדרך הראשונה.

פורסם
  • מחבר

תודה , אני אנסה!

פורסם

Threading. ולא, אין דבר כזה "לא עובד". תקרא מדריכים.

פורסם

כדי למנוע מחלון לקפוא יש 2 אופציות:

1) להשתמש ב- WorkerBackground כדי להריץ את הקוד שלך ברקע ולא לתקוע את החלון.

2) לקרוא ל- Application.DoEvents כל כמה פעולות כדי שהמערכת תוכל לבצע את הפעולות של הדפסת החלון.

אני אוהב יותר את הדרך הראשונה.

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

הדרך הראשונה היא נכונה, והיא מן הסתם ממומשת מאחורי הקלעים על ידי Threading.

פותח הדיון - אני מאד ממליץ לקרוא קצת על threading כדי להבין מה בדיוק אתה הולך לעשות (גם אם לכאורה אפשר פשוט להשתמש ב-Background worker שעוטף את זה ומקל קצת את החיים). זה נושא די כבד שפותח פתח להרבה צרות ורצוי להבין אותן לפני שנכנסים לזה.

ארכיון

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

דיונים חדשים