Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

MultiThreading

Îåêßíçóå áðü ôï ìÝëïò ntaryl. Τελευταία δημοσίευση από το μέλος ntaryl στις 13-02-2010, 19:40. Υπάρχουν 7 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  10-02-2010, 21:10 57061

    MultiThreading

    καλησπερα   

    Εχει ασχοληθει με MultiThreading  ?Ψαχνω να βρω πληροφοριες .

    Πειτε  μας  τις εντυπωσεις  σας  

    Ευχαριστω   



    Rookie learn to fly U are my Inspiration...
    Who said Multithreading is impossible
    Try it First and after Deside if is Possible
  •  10-02-2010, 21:15 57062 σε απάντηση της 57061

    Απ: MultiThreading

    Για VB6? Μόνο με άσχημες χακιές. Δεν αξίζει καν να προσπαθήσεις Για .NET? Άπειρες πληροφορίες και αρκετά εύκολο σε πολλά σημεία λόγω των delegates.

    Τί θέλεις να κάνεις? Ίσως να μπορείς να το βγάλεις σε ένα .NET assembly το οποίο θα καλείς από την εφαρμογή σου.

    Και για ξαναπές μου, γιατί ασχολείσαι με VB6, ειδικά αφού χρειάζεσαι πράγματα τα οποία δεν φτιάχτηκε ποτέ να κάνει?


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  10-02-2010, 23:43 57068 σε απάντηση της 57062

    Απ: MultiThreading

    Και εγώ είμαι λάτρης της VB 6.0 και πρώην χρήστης της αλλά φτάνει πιά.
    Είχα προσπαθήσει κάτι παρόμοιο αλλά έβγαλα τζάμπα τα μάτια μου. (παρεμπιπτόντως την παρασκευή έχω ραντεβού με την οφθαλμίατρο!)
    Θα προτιμήσω να σε ψήσω με ένα πρότυπο παράδειγμα σε .net για να καταλάβεις τι χάνεις...

    Ρίχνεις στο παιχνίδι έναν backgroundWorker π.χ.

    myBackgroundWorker.RunWorkerAsync(ότι θες να περάσεις στην αργή εργασία γιατί μετά δεν έχει πρόσβαση έξω);

    γεμίζεις τα 3 βασικά του event και κάθεσαι μετά να το χαζεύειςSurprise αντί να βγάζεις τα μάτια σου.  Tongue Tied

    private void myBackgroundWorker_DoWork(object sender, DoWorkEventArgs e)
    {
           ενέργεις που θέλεις να κάνει όσο δουλεύει
    }

    private void sampleBackgroundWorker_ProgressChanged(object sender, ProgressChangedEventArgs e)
    {
           ενέργεις που θέλεις να κάνει κάθε φορά που ολοκληρώνει ένα τμήμα του συνόλου της αργής δουλειάς
    }

    private void sampleBackgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
    {
           ενέργειες που θελεις να κάνει όταν τελειώσει το δύσκολο έργο του
    }

    Ενδέχεται να υπάρχουν και άλλοι τρόποι στο άπειρο .net τους οποίους δεν γνωρίζω, που ίσως να προσφέρουν περισσότερα πράγματα.

  •  11-02-2010, 07:38 57072 σε απάντηση της 57061

    Απ: MultiThreading

    Πολλοί φίλοι και γνωστοί προγραμματιστές που γράφουν ακόμα σε VB6 υπερασπίζονται με πάθος την γλώσσα με το βασικό επιχείρημα (στο οποίο έχουν βέβαια και κάποιο δίκιο) ότι έχουν τόσα πολλά πράγματα γραμμένα σε VB6 που δεν συμφέρει να αλλάξουν. Το Multithreading όμως είναι ένας από τους (πάρα πολλούς) λόγους που αναγκαστικά κοιτάνε προς την μεριά του .net!!!! Έχω γνωστό που το Multithreading ήταν ο κύριος λόγος που τελικά έφαγε το πακέτο της αναβάθμισης σε .net.

    Το multithreading δεν υλοποιείται "καλά" στην VB6. Θα φτιάξεις ένα πρόβλημα και θα δημιουργείς άλλα 10.

    Αυτά κοίτα προς τη μεριά του .Net Assembly που πρότεινε ο Παναγιώτης. Νομίζω ότι είναι η καλύτερη λύση.

    Manos
  •  11-02-2010, 19:51 57088 σε απάντηση της 57072

    Απ: MultiThreading

    Ευχαριστω  πολυ παιδια  


    Υ.γ  Να  φτιαξω  ενα  multithreading  Client  .


    Rookie learn to fly U are my Inspiration...
    Who said Multithreading is impossible
    Try it First and after Deside if is Possible
  •  12-02-2010, 11:31 57097 σε απάντηση της 57088

    Απ: MultiThreading

    Να προσθέσω όμως ότι με τα parallel extensions του .NET 4 τα πράγματα αλλάζουν λιγάκι. Κυρίως ως προς το ότι για πολλά πράγματα δεν χρειάζεται να ασχοληθείς με threads. Θέλεις λοιπόν πραγματικά multi threading και να έχεις έλεγχο στα threads ή θέλεις γενικά multi tasking; Συνήθως το 2ο απλά μέχρι τώρα δεν είχαμε άλλη επιλογή (είχαμε το CCR αλλά ήθελε λίγο παραπάνω ψάξιμο για να το χρησιμοποιήσεις). Τώρα όμως έχουμε.
    Dimitris Papadimitriou
    Software Development Professional
    dotNETZone.gr News

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Διαβάστε επίσης τους όρους χρήσης.
  •  12-02-2010, 19:31 57115 σε απάντηση της 57088

    Απ: MultiThreading

    ntaryl:
    Υ.γ  Να  φτιαξω  ενα  multithreading  Client  .

    Ο "ορθόδοξος" τρόπος να πετύχεις κάτι τέτοιο στην VB6 είναι να δημιουργήσεις libraries σαν ActiveX EXE. Σε αντίθεση με τα ActiveX DLL που τρέχουν στο ίδιο thread με το πρόγραμμα που τα καλεί, τα ActiveX EXE τρέχει το καθένα σε δικό του thread. Έτσι μπορείς να "ξεφορτώσεις" το thread του προγράμματός σου, μεταφέρονται το φόρτο σε διαφορετικά thread.

    Μπορείς να χρησιμοποιήσεις βέβαια και τις διάφορες "χακιές" που υπάρχουν στο Internet για να κάνεις ένα VB6 εκτελέσιμο multi-threading - δεν θέλω για μια ακόμη φορά να κάνω ένα μονόλογο με τα "κατά" ενός τέτοιου εγχειρήματος - σου λέω ότι μπορείς να αντιμετωπίσεις διάφορες απίθανες καταστάσεις, μιας και το threading της VB6 VM δεν είναι φτιαγμένο για κάτι τέτοιο.

     

    George J.


    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
  •  13-02-2010, 19:40 57128 σε απάντηση της 57115

    Απ: MultiThreading

    Ευχαριστβ πολυ φιλε  μου   

    καλο  βραδυ   


    Rookie learn to fly U are my Inspiration...
    Who said Multithreading is impossible
    Try it First and after Deside if is Possible
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems