Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    47

    Uscire dal while dopo tot tempo

    Buongiorno a tutti.

    Ho la necessità di uscire da un while dopo un certo tot di tempo...ma non sono riuscito a risolvere.

    Qualche idea?

    Grazie

  2. #2
    Ho paura di chiederti quello che stai facendo

    Comunque, così di primo acchito direi che ti basta, ad esempio prendere il tempo attuale in millisecondi ed inserire un controllo nel while che lo faccia terminare nel momento in cui il tempo in millisecondi superi di un certo delta quello iniziale.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    47
    Ci ho già provato in questo modo:

    while(true){
    if ((time() - $start_time) > 20) {
    return false; // timeout, function took longer than 20 seconds
    }
    }

    ma niente da fare

    Ps. sono in attesa di alcuni dati tramite socket_read e ogni tanto il server non invia nulla
    Ultima modifica di gauge; 05-08-2015 a 13:59

  4. #4
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Perchè vuoi fare questo ?
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  5. #5
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Che vuol dire "niente da fare"? Che fa? Da errore? Non esegue niente del ciclo?
    Spiega un po', non abbiamo la sfera di cristallo, io almeno non ce l'ho, satifal mi pare di aver letto in un'altra discussione che ce l'ha in riparazione o comunque non è attualmente disponibile.

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    47
    Il dispositivo remoto non risponde e non da errori. Il ciclo, dopo un tot di dati, si aspetta un ETX, ma il dispositivo remoto rimane muto.

  7. #7
    A parte che per uscire da un ciclo si usa l'istruzione break e non return e, tralasciando l'arcano motivo per cui stai facendo una cosa del genere, per un loop di, ad esempio, 5 secondi basta fare una roba del genere:

    Codice PHP:
    <?php
    $end 
    time() + 5;
    while(
    time() < $end) {
        ...
    }
    ?>
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    47
    Ho provato così, ma non va:

    Codice PHP:
    <?php
    $end 
    time() + 20;
    while((
    $byte != chr(3)) || (time() < $end)){
       ...
    }
    ?>

  9. #9
    A parte che "non va" non significa nulla, evidentemente la condizione è sempre vera.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  10. #10
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    47
    Scusami, ho messo l'OR invece che l'AND. Però il ciclo non si interrompe comunque. Ho provato solo la parte di codice che mi hai dato e funziona. Cosa sto sbagliando?

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.