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

    [C#] Thread, come aspettare il loro termine

    Ragazzi, devo fare un'applicazione che prevede, al suo interno, in caso di un determinato errore tot tentativi per rifare l'operazione, ma infilandoci in mezzo un pò di delay.

    Ho trovato che il sistema migliore senza timer è l'utilizzo di un thread, solo che vorrei creare questa situazione:

    istruzione
    istruzione
    istruzione
    lancio del thread
    attesa fine thread
    istruzione
    istruzione
    istruzione

    Questo perché la mia applicazione NON deve continuare se il thread non ha ancora finito.

    Ho visto che il thread offre la possibilità di fare un controllo sul suo stato con isAlive e quando termina isAlive diventa false.

    Però questo controllo implica che devo fare un while di controllo per vedere quando isAlive diventa false.

    Esiste invece un modo per imporre all'applicazione di aspettare il temine del thread per continuare?

    Grazie

    P.S. questa gif è geniale:

  2. #2
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    L'applicazione è già di per sè un thread quindi facendo


    codice:
    Thread.Join(SecondoThreadCheDeveFinire);
    L'applicazione dovrebbe aspettare la fine del thread

  3. #3
    Ti ringrazio della risposta ma sono riuscito a trovare una soluzione sensazionale

    Allora, a me non serve un Thread complesso, mi basta che mi faccia aspettare un determinato tempo, può anche non fare assolutamente niente, basta che mette in pausa.

    Ho visto che in C# c'è la possibilità di utilizzare il sistema Threading senza necessariamente utilizzare i Thread.

    Ho creato questa classe:

    codice:
    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Threading;
    
    namespace ProveThread
    {
        class ProvaThread
        {
            public static void Pausa(Int32 Millisecondi)
            {
                Thread.Sleep(Millisecondi);
            }
        }
    }
    All'interno di un qualsiasi progetto, se aggiungo questa classe e includo sopra using ProvaThread, mi basterà, dove voglio inserire una pausa, scrivere ProvaThread.Pausa(attesa), dove attesa sono i millisecondi che deve star ferma l'applicazione.

    Ho fatto una prova e funziona

  4. #4
    secondo me senza star li a creare una classe apposta si puo usare direttamente

    codice:
    Thread.Sleep(Millisecondi);
    direttamente nel punto in cui ti serve ricordandosi si inserire

    codice:
    using System.Threading;
    all'inizio del codice
    un uomo senza panza e come un cielo senza stelle ...mio tris ...

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    970
    Originariamente inviato da clingonboy
    secondo me senza star li a creare una classe apposta si puo usare direttamente
    Quale classe ?
    Sbagliare è umano, perseverare è diabolico.

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.