עבור לתוכן

איך לגרום לפעולה ארוכה לא לתקוע את התוכנית? C#

Featured Replies

פורסם

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

איך אני עושה שהתוכנה תדע לעשות דברים תוך כדי?

אם אפשר גם C# וגם VB זה יהיה נחמד...

[ד"א הייתי מחפש בגוגל, אבל הרשתות פה עם רימון הכי גבוה \= מעניין שאת הפורום הוא נותן...]

פורסם

בעקרון אתה צריך להשתמש ב-Threads.

ספציפית חפש מידע על ThreadPool.QueueUserWorkItem.

פורסם

ב VB יש לך פקודה שנקראת doevents

פורסם

כמו שציינו עלייך להשתמש ב-Threading ולהריץ את אותה הפעולה על הליך שונה מההליך של ה-UI.

כך יקרה שה-UI ימשיך להגיב ובהליך מקביל אליו תריץ אלגוריתם מסויים.

בכדי להעביר מידע בין הליכים (בין ההליך של ה-UI להליך של האלגוריתם הבעייתי) תוכל להישתמש במחלקה

SynchronizationContext אשר מאפשר לך להעביר הודעות בין מספר הליכים. מידע נוסף תוכל למצוא ב-MSDN:

http://msdn.microsoft.com/en-us/library/system.threading.synchronizationcontext.aspx

תשתמש ב-SynchronizationContext.current בכדי להשיג את ה-Context של ה-UI Thread ובאמצעות אותו ה-Context

תשתמש במתודה Post בכדי להעביר את הההודעה.

זה ממש בקצרה. המחלקה מאוד שימושית ודיי פשוטה לשימוש. בהצלחה!

ארכיון

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

דיונים חדשים