Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [C#] come posso far lavorare due thread in parallelo?

    Ciao a tutti ,
    sto utilizzando visual studio 2010 c#... il mio piccolo progetto consiste nel far lavorare due oggetti in parallelo...
    Spiego cosa voglio fare:
    ho realizzato una classe che deve continuamente fare delle elaborazioni e mettere questi risultati in determinate variabili.Per ottenere questa elaborazione continua ho usato un ciclo while(true){...}.
    Poi ho realizzato una classe server web che deve prendere le richieste dell'utente tramite browser e anche qui ho usato un ciclo while(true){...}.
    Se eseguo il programma esso resterà nel primo ciclo infinito nel quale entrerà...allora per evitare questo ho fatto un'istanza della classe che elabora i dati nella classe server...
    ma non fa ciò che mi aspettavo cioè se eseguo il programma esso funziona per poco e poi è come se la parte di codice che ho scritto vada in stato di attesa ovvero ricomincia a funzionare solo se l'utente invia qualche richiesta al server per poi rifermarsi...mentre io vorrei che l'elaborazione dei dati venga fatta sempre anche quando l'utente non invii nessuna richiesta...
    Ho capito quindi che mi servono i thread ma non ho mai usato questi oggetti e per tanto vi chiederei un aiuto se possibile nel descrivermi un codice di esempio in cui i due thread si alternino nel lavorare all'infinito...
    Spero di esser stato chiaro nella descrizione del mio problema e che mi possiate aiutare...

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    E' inevitabile chiederti se hai fatto qualche ricerchina ... esistono mille esempi su internet ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Ciao Oregon,
    Grazie per la tua disponibilità... si ho visto alcuni esempi di thread con sincronizzazione e vari...ma come evidenziato nell'altro post non saprei quale strada prendere dato che non ho mai usato i thread, se potresti darmi qualche dritta, qualche link ad hoc per la mia situazione ti sarei grato...ho visto anche degli esempi che mette a disposizione la Microsoft ma ci sono alcuni che dovrei studiarmi bene metodi e proprietà...e non sapere poi se otterrei il risultato sperato per questo ho postato la domanda per avere qualche dritta e arrivare subito all'obbiettivo...

  4. #4
    Il problema è che la programmazione multithreading non si improvvisa "dal nulla"... è fondamentale studiare, prima ancora dei metodi delle classi che entrano in gioco, i "concettoni" della programmazione multithreading, altrimenti si finisce a scrivere codice con race conditions o che va in deadlock ad ogni momento.
    Così al volo direi che il tuo è il classico caso di problema a "producer-consumer", se cerchi su Google trovi un sacco di esempi di implementazioni del pattern in questione con .NET (usando caratteristiche fornite dal framework che "nascondono" gli aspetti peggiori della programmazione multithreading "libera").
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Grazie MItaly, hai ragione dovrei studiarmi per bene i thread... e così farò ma cmq cercherò di andare avanti in questo progettino che sto facendo analizzando come hai notato anche tu il caso del produttore consumatore...io speravo solo nel chiamare i due thread ma invece non e' così... bhe ci provo andando a spulciare questo caso specifico...grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.