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

 

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

Stable MultiThread

Îåêßíçóå áðü ôï ìÝëïò ntaryl. Τελευταία δημοσίευση από το μέλος Παναγιώτης Καναβός στις 09-09-2010, 21:13. Υπάρχουν 3 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  09-09-2010, 01:25 59912

    Stable MultiThread

    Συνημμένα: Multithread.rar

    Καλημερα 

    Πραγματικο MultiThreading  δεν υποστηριζεται απο  την visual  basic  6 .Ειναι ασταθες και κρασαρει  πολυ συχνα (Ετσι  μασ  λεγανε)

    Στις παλιοτερες εκδοσεις (5)  ηταν πιο  σταθερο..

    Ποιος  ομως πιστευει οτι ακομα  ισχυει ?

    Το  συγκεκριμενο παραδειγμα  χρησιμοποιει  την (unstable) CreateThread  .Δοκιμασμενο  σε windows  XP -sp2  ,W7

    Δεν ειναι  δικο μου  .

    First Author =IZero  from Slovakia  

    Modded a  bit  From  Friend (Cobein)make  it  more  stable  

    xixiiixx  

    Ποιος λελει  οτι  δεν ειναι  δυνατο




    Rookie learn to fly U are my Inspiration...
    Who said Multithreading is impossible
    Try it First and after Deside if is Possible
  •  09-09-2010, 18:32 59924 σε απάντηση της 59912

    Απ: Stable MultiThread

    Έχεις μπερδέψει μερικά πράγματα. Άλλο το τί κάνει η VB6 και άλλο τί κάνει το λειτουργικό. Η CreateThread είναι κλήση του λειτουργικού, η οποία ξεκινάει threads και τα εκτελεί άσχετα από το τί κάνει η VB6. Το πρόβλημα με τη VB είναι ότι από γεννησιμιού της απλά δεν υποστηρίζει threads, καθόλου. Υποστηρίζει multithreading για κλήσεις σε COM αντικείμενα, και χειρίζεται η ίδια αυτά τα threads. Αυτός είναι και ο λόγος που δεν μπορείς να την αναγκάσεις να φερθεί ως multithreaded γλώσσα: οι απαιτήσεις του COM είναι αυστηρότερες από αυτές του λειτουργικού. Δεν είναι ότι παλιότερες εκδόσεις ήταν πιο σταθερές, γιατί απλά δεν ήταν. Απλά είχαν ακόμα λιγότερες δυνατότητες COM multithreading από την 6.

    Αν σκοπεύεις να χρησιμοποιήσεις το λειτουργικό για multithreading δεν έχει κανένα απολύτως νόημα να χρησιμοποιήσεις VB6 καθώς απλά μπλέκεται στη μέση και προκαλεί προβλήματα. Το Win32 API φτιάχτηκε για προγραμματισμό σε C και είναι ευκολότερο να κάνεις τέτοια πράγματα μέσω της Visual C++ παρά να αναγκάζεις την VB6 να κάνει τέτοια αφύσικα πράγματα, εντελώς αντίθετα από τη φιλοσοφία της.

    Και δεν συζητάμε για το αν έχει νόημα να κάνεις τόση φασαρία για να πετύχεις κάτι που στο .NET γίνεται με μία γραμμή κώδικα ...

    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  09-09-2010, 18:49 59925 σε απάντηση της 59924

    Απ: Stable MultiThread

    καλησπερα

    Απλα  πειραματισμος  ..


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

    Απ: Stable MultiThread

    Αν θέλεις να δεις πως δουλεύει το threading με το Win32 API, πειραματίζεσαι με λάθος εργαλεία. Αν σε ενδιαφέρει το πραγματικά  stable multithreading, χρειάζεται να κάνεις πολύ περισσότερα από το να ξεκινήσεις ένα thread χωρίς να σκάσει η εφαρμογή. Θα πρέπει να λάβεις υπόψη συγχρονισμό και επικοινωνία μεταξύ thread, ομαλό termination, και όλα τα καλούδια όπως mutexes, semaphores κλπ.

    Μη νομίζεις ότι επειδή ο κώδικας που δίνεις είναι γραμμένος σε VB6 είναι και πιο εύκολος στη χρήση από τη χύμα C. Από τη στιγμή που καλείς το Win32 API είσαι αναγκασμένος να χρησιμοποιείς κλήσεις και να περνάς παραμέτρους όπως με την απλή C, χωρίς καμμία διευκόλυνση από βιβλιοθήκες ή compiler, χωρίς καν τη δυνατότητα να πιάσεις όλα τα exceptions σε περίπτωση που κάτι πάει στραβά (π.χ. memory violation). 

    Αν θες να δεις τί υπάρχει διαθέσιμο για multithreading στο χώρο του Win32 API, μπορείς φυσικά να κοιτάξεις τις βιβλιοθήκες της Visual C++ αλλά και την boost::thread, η οποία επιτρέπει την εκτέλεση και διαχείριση thread με ψιλο-στανταρ και σταθερό τρόπο. 

    Επίσης, θα πρέπει να δεις την υποστήριξη για OpenMP που έχει η Visual C++ και επιτρέπει την παράλληλη εκτέλεση κώδικα σε πολλούς επεξεργαστές. Είναι κάτι που είναι σχεδόν αδύνατο να πετύχεις καλώντας το Win32 API μέσω VB6

    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems