שאלת threading
יש לי Windows Forms Application, ואני צריך לבצע חישובים די מסובכים ברקע. לצורך כך יצרתי class שבו יש פונקציה המפעילה את פונקציית החישוב בתוך thread נפרד. בעוד הפונקצייה מחשבת, התוכנית ממשיכה לרוץ. כאשר החישוב מסתיים, ה-GUI מושפע בהתאם. הקפדתי לא לקרוא לשום פונקצייה אחרת מתוך ה-thread (אגב פונקציית החישוב היא רקורסיבית - אבל אני לא פותח threads מפונקציית החישוב). שאלה 1: איך אני יכול לדעת בוודאות שה-thread נסגר ושאני לא עדיין ב-context של ה-thread? שאלה 2: בשלב מסויים אני מעוניין ליצור controls חדשים ולשחרר controls ישנים. אני מקבל Exception שההודעה שלו היא: Controls created on one thread cannot be parented to a control on a different thread. איך נמנעים מההודעה?
יש לי Windows Forms Application, ואני צריך לבצע חישובים די מסובכים ברקע. לצורך כך יצרתי class שבו יש פונקציה המפעילה את פונקציית החישוב בתוך thread נפרד. בעוד הפונקצייה מחשבת, התוכנית ממשיכה לרוץ. כאשר החישוב מסתיים, ה-GUI מושפע בהתאם. הקפדתי לא לקרוא לשום פונקצייה אחרת מתוך ה-thread (אגב פונקציית החישוב היא רקורסיבית - אבל אני לא פותח threads מפונקציית החישוב). שאלה 1: איך אני יכול לדעת בוודאות שה-thread נסגר ושאני לא עדיין ב-context של ה-thread? שאלה 2: בשלב מסויים אני מעוניין ליצור controls חדשים ולשחרר controls ישנים. אני מקבל Exception שההודעה שלו היא: Controls created on one thread cannot be parented to a control on a different thread. איך נמנעים מההודעה?