Problema con ciclo

di dna_programmer il
23 risposte

23 Risposte - Pagina 2

  • Ciao inizia a modificare la condizione di uscita:
    If secondi = 0 Then
    in
    If secondi <= 0 Then
  • Ma questa su che evento viene invocata:
    Private Sub time_game_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles time_game.Tick
    ?
    cmq se l'applicazione non è multithread la vedo dura che funzioni
  • Jam3s82 ha scritto:


    Ma questa su che evento viene invocata:
    Private Sub time_game_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles time_game.Tick
    ?
    cmq se l'applicazione non è multithread la vedo dura che funzioni
    Quoto! o il loop 'While secondi <>0' lo fai in un thread oppure ti blocca la finestra.
  • Ok, però gentilmente scusate la mia ignoranza, ma mi potreste dire in poche parole cos'è una'applicazione multithread , e perché in questo caso occorre fare così'?
  • La cosa che non si deve fare è mettere un loop in una funzione del form, ti blocca tutta la finestra. Di solito non ce n'è bisogno se proprio proprio servisse (ma credimi non serve) lo si può fare bucato con Application.DoEvents().

    I thread sono pezzi di codice che girano in parallelo al programma principale, diciamo che è un argomento complesso, se ti interessa ne parliamo, ma è una cosa che serve in situazioni molto particolari.
  • No sei vuoi spiegarmelo e se hai tempo, visto che è difficile, mi piacerebbe sapere almeno cosa sono e in che situazioni particolari si usano.Ti ringrazio ancora per la tua disponibilità in generale
  • È un argomento lungo che non si risolve in poche parole, di solito si mettono in parallelo delle attività lente o bloccanti (comunicazioni tcp/ip, attesa di eventi particolari ecc.).

    E comunque usare i thread col .NetFramework non è neanche troppo difficile.
  • Sì, esatto... io qualche volta li ho usati anche in applicazioni windows form .NET, quando ad esempio al click su un bottone si recuperano parecchi dati dal db facendo anche più query...
    In questi casi se non usi i thread la finestra dell'applicazione sarà freezata finchè non si finiscono tutte le attività; tipicamente si mette anche una process bar in cui visualizzi l'avanzamento percentuale.
    Se vuoi approfondire questa cosa in .NET ti consiglio di guardare degli esempi con la classe BackgroundWorker
  • Ok grazie a tutti per i chiarimenti!
Devi accedere o registrarti per scrivere nel forum
23 risposte