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

    [C#] Ciclo while infinito in un Thread

    Sto realizzando un piccolo programma che gestisce gli eventi, e deve eseguire uno alla volta, uno dopo l'altro..
    Pensavo di mettere il controllo del evento in un circlo while e in un thread. Ma mi è sorto un dubbio, visto che non sono esperto in questo campo..

    Se io metto un while infinito in un thread. Prima o poi il programma si blocca o no? Non esaurisce la memoria?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Non avendo capito quale sia il problema, non so dire se il ciclo "infinito" in un thread sia la soluzione piu' adatta ...

    Come risposta al problema del ciclo invece, ti diro' che il ciclo dovra' essere controllato sempre da una condizione che, se si verifica, lo fa terminare. Per la questione della memoria, non c'e' alcun problema, a meno che nel ciclo venga solamente allocata e mai liberata ...

  3. #3
    Originariamente inviato da oregon
    Non avendo capito quale sia il problema, non so dire se il ciclo "infinito" in un thread sia la soluzione piu' adatta ...

    Come risposta al problema del ciclo invece, ti diro' che il ciclo dovra' essere controllato sempre da una condizione che, se si verifica, lo fa terminare. Per la questione della memoria, non c'e' alcun problema, a meno che nel ciclo venga solamente allocata e mai liberata ...
    Mi spiego meglio..
    In pratica ho sviluppato un piccolo gioco online, e per gestire alcuni eventi ho bisogno di un applicazione (tipo: game server). Avendo gli eventi che non finisco mai, in conseguenza la mia applicazione non deve finire mai (fineche non stoppo io), e deve controllare evento dopo evento senza mai fermarsi.. Gli eventi sono contenuti in un database. Quindi nel ciclo farò queste semplici 4 operazioni:
    1. Select dei Dati dal DataBase
    2. Elaborazione di questi Dati (diverse operazioni algebriche)
    3. Update dei Dati nel DataBase
    4. Delete dei Dati nel DataBase

    Quindi in questo modo non ci dovrebbero essere dei problemi per il ciclo giusto?
    Importante che la mia applicazione e/o il computer non si bloccano a causa del mio ciclo infinito.. Non mi sembra che utizzo la memoria senza liberarla, in quanto le variabili le dichiaro fuori dal ciclo, compreso la connessione al database sono fuori dal ciclo..
    Nel ciclo vengono eseguite solo 3 Query SQL e qualche operazione matematica..

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Nessun problema.

    Uniche raccomandazioni:

    1) il ciclo e' controllato da una variabile che normalmente lo fa ripetere; quando tu vuoi terminare l'applicazione, modifica il valore di quella variabile opportunamente ...

    2) nel ciclo inserisci una pausa (sleep del thread) di qualche secondo altrimenti rischi di "impallare" la CPU ...

    3) se non hai necessita' particolari, piuttosto che una normale applicazione, potresti scrivere un servizio di Windows ...

  5. #5
    Originariamente inviato da oregon
    Nessun problema.

    Uniche raccomandazioni:

    1) il ciclo e' controllato da una variabile che normalmente lo fa ripetere; quando tu vuoi terminare l'applicazione, modifica il valore di quella variabile opportunamente ...

    2) nel ciclo inserisci una pausa (sleep del thread) di qualche secondo altrimenti rischi di "impallare" la CPU ...

    3) se non hai necessita' particolari, piuttosto che una normale applicazione, potresti scrivere un servizio di Windows ...
    1. Sempre..

    2. E questo volevo sapere...

    3. Non sapprei scrivere un servizio, ma non è difficile dare 1 occhiata ai vari esempi che si trovano in rete.. Prima di cercare vorrei chiederti che differenza c'è se creo un applicazione che verà eseguita in background e un applicazione che gira come servizio di windows??

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Originariamente inviato da Andriy88
    3. Non sapprei scrivere un servizio, ma non è difficile dare 1 occhiata ai vari esempi che si trovano in rete.. Prima di cercare vorrei chiederti che differenza c'è se creo un applicazione che verà eseguita in background e un applicazione che gira come servizio di windows??
    Per far girare una comune applicazione, devi eseguire il login.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

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.