Σε γενικες γραμμες (και λιγο βιαστικα
![Sad [:(]](/cs/emoticons/emotion-6.gif)
):
1, 2, 3: Υπαρχει τροπος να εχεις επικοινωνια μεταξυ των threads χρησιμοποιωντας delegates τα οποια ειναι κατι σαν τα function pointers της C. Δες στο Help για την Invoke και την BeginInvoke οι οποιες επιτρεπουν synchronous η asynchronous εκτελεση ενος delegate στο thread που σ'ενδιαφερει.
Επισης, για να αλλαζεις και τιμες θα χρειαστει να κανεις και καποιου ειδους lock σε shared variables. Σχετικα με αυτα μπορεις να δεις το keyword lock οπως και την κλαση Monitor.
4. Επειδη το να κανεις create και destroy threads ειναι αρκετα costly, το Net Framework παρεχει ενα pool, (μια συλλογη δηλ.) απο "ετοιμα" threads τα οποια μπορουν να κανουν τη δουλεια που θελεις και μετα πεφτουν σε sleep mode.
Ετσι εχεις πολυ μικροτερο overhead μιας που αποφευγεις το create/destroy. Στην εκδοση 2 του Framework μπορεις να ορισεις εσυ ποσα threads θα εχει το threadpool αλλα πρεπει να προσεχεις γιατι αν πεις στο pool να εξυπηρετησει περισσοτερα requests απ'οτι το ιδιο μπορει (απ'οσα threads δηλ. εχει), τα επιπλεον requests θα περιμενουν μεχρι να ελευθερωθει καποιο thread απο το pool.
Software Engineer, specializes in Microsoft .net/C#, COM, Sql Server and now Python.