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

 

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

Multithread εφαρμογή

Îåêßíçóå áðü ôï ìÝëïò DaltonGR. Τελευταία δημοσίευση από το μέλος DaltonGR στις 21-01-2008, 13:14. Υπάρχουν 6 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  09-01-2008, 15:20 38997

    Multithread εφαρμογή

    Καλημέρα,

    Θα ήθελα λίγη βοήθεια με το multithreading.θέλω την στιγμή που ο χρήστης πατήσει αποστολή των στοιχείων(με ftp) θέλω ένα thread να κάνει τον έλεγχο συνδεσιμότητας, ένα άλλο το "μ'αζεμα" των αρχείων και το άλλο να τα στέλνει ενώ κατά  όλη αυτή την διαδικασία ο χρήστης να μπορεί να λειτουργήσει την εφαρμογή.

     

    Ευχαριστώ εκ των προτέρων.....

  •  09-01-2008, 15:40 39006 σε απάντηση της 38997

    Απ: Multithread εφαρμογή

    Προφανώς για να γίνει η μια δουλειά πρέπει πρώτα να τελειώσει η δεύτερη. Οπότε δεν θέλεις πολλά threads αλλά μόνο ένα επιπλέον από αυτό που δουλεύει το UI.

    Ο μόνος λόγος να θέλεις περισσότερα threads είναι για να κερδίσεις χρόνο. π.χ. να μαζεύεις τα αρχεία την ώρα που ελέγχεις την ftp σύνδεση ή να στέλνεις αρχεία πριν ολοκληρωθεί το μάζεμα όλων. Αυτό όμως θέλει περισσότερη προσοχή στο συγχρονισμό-συντονισμό των threads. Θα έλεγα να το αποφύγεις.

    Αν λοιπόν σου κάνει μόνο το ένα επιπλέον thread έχεις δυο επιλογές (αυτές έχεις και για περισσότερα απλά εκεί θέλεις και άλλα πράγματα):

    1. χρήση new Thread()
    2. χρήση BeginInvoke

    Η 2η είναι προτείνεται συνήθως γιατί χρησιμοποιεί ανακλυκλωμένα threads από ένα thread pool, οπότε είναι πιο γρήγορη. Γενικά το άνοιγμα-κλείσιμο threads θεωρείται σχετικά βαριά δουλειά.

    Άσχετο: Ένα εξαιρετικό document που περιγράφει με λεπτομέρεια τις threading δυνατότητες της C# είναι αυτό (πάνω κάτω ισχύον τα ίδια και στην vb όπως εύκολα υποθέτει κανείς). Αν ασχολείσαι πρώτη φορά με threading όμως μην μπεις στο document αυτό και χαθείς! Ψάξε για πιο απλά παραδείγματα στο δίκτυο.

    Πες γλώσσα προγραμματισμού που προτιμάς για να δώσω ένα μικρό παράδειγμα...


    Dimitris Papadimitriou
    Software Development Professional
    dotNETZone.gr News

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Διαβάστε επίσης τους όρους χρήσης.
  •  09-01-2008, 15:53 39007 σε απάντηση της 39006

    Απ: Multithread εφαρμογή

    Και όλα αυτά γιατί το Compact framework δεν περιλαμβάνει το  BackgroundWorker control. Angry
    Δηλαδή τι περιμένουν για να το βάλουν μέσα στο Compact Framework. Να φτάσουν οι επεξεργαστές των PDA τα 4GHz!!!!!



    Manos
  •  09-01-2008, 20:23 39010 σε απάντηση της 39007

    Απ: Multithread εφαρμογή

    Ρίξε μια ματιά από Daniel Moth - έχει ένα implementation για CF v1.0 και v1.1 του BackgroundWorker. Αν δεν σου παίξει για CF v2.0 πιστεύω ότι θα είναι πρόθυμος να βοηθήσει...

     

    George J.


    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
  •  10-01-2008, 09:58 39024 σε απάντηση της 39010

    Απ: Multithread εφαρμογή

    George J. Capnias:
    Ρίξε μια ματιά από Daniel Moth - έχει ένα implementation για CF v1.0 και v1.1 του BackgroundWorker. Αν δεν σου παίξει για CF v2.0 πιστεύω ότι θα είναι πρόθυμος να βοηθήσει...


    Πολύ ενδιαφέρον. Θα το κοιτάξω. Όμως και ο Daniel Moth λέει στην αρχή του Post ότι μπορεί να έμπαινε στο CF 2.0 αλλά τελικά τζίφος!!@#%!@#$

    Manos
  •  10-01-2008, 10:19 39026 σε απάντηση της 39024

    Απ: Multithread εφαρμογή

    To BackgroundWorker είναι ...component sugar καθώς δεν έχει κανένα low-level functionality, ούτε κάτι που δεν μπορείς να κάνεις implement μόνος σου. Απλά, έχουν φτιάξει ένα ωραίο πακετάκι. Νομίζω πάντως ότι το OpenNetCF περιέχει ένα implementation του BackgroundWorker.


    Vir prudens non contra ventum mingit
  •  21-01-2008, 13:14 39428 σε απάντηση της 39006

    Απ: Multithread εφαρμογή

    Καλημέρα,

    Δίκιο έχεις, όπως το θέτεις ένα thread παραπάνω χρειάζομαι και όχι τρια. Σε VB γράφω και πρώτη φορά ασχολούμαι με threads και τα συναφή.

    Ευχαριστώ για τα link. θα τους ρίξω μια ματιά και θα postaro τις απορίες...

    Άυτό που θέλω να κάνω είναι να ενημερώνω κάποια labels με δεδομένα που έρχονται απο socket.όταν το κάνω αυτό δεν ενημερώνονται καθόλου διότι το main thread δεν "προλαβαίνει" να τα ενημερώσει.υπάρχει κάποια λύση.

    Ευχαριστώ και πάλι...

Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems