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

    [vb2008] ciclo di ritardo che non blocchi tutto

    l' istrusione Sleep è comoda... peccato che blocchi tutto il programma

    cioè, se per esempio ho un evento timer che ogni 50 millisecondi controlla la tastiera tramite GetAsyncKeyState e da tutt' altra parte inserisco una istruzione Sleep(20000) per rallentare l' esecuzione di una specifica routine... per 20 secondi si blocca tutto il programma, timer compreso, né inserire un DoEvents serve a qualcosa

    addirittura non riesco a spostare il form (FormBorderStyle è su none, lo sposto controllando eventi MouseDown sui vari controlli)

    VB.net mette a disposizione qualche istruzione alternativa per rallentare una routine specifica senza addormentare l' intero programma o devo necessariamente ricorrere ad un ciclo Do... Whyle con inserito un DoEvents?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Per evitare questo tipo di problemi, in genere, si ricorre alla programmazione multithread.

    Oppure puoi fare un ciclo in cui esegui tante volte una "piccola" Sleep (diciamo di 100 ms) con una DoEvents.

    Dipende da cosa devi fare esattamente ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    onestamente al momento non saprei da dove iniziare per il multithread...

    risolto con un semplicissimo

    Dim StartTime as Date = Now
    Do
    Application.DoEvents()
    Loop Until (Now - StartTime).TotalMilliseconds > 12500

    dove 12500 è un esempio di ritardo in millisecondi

    l' unica cosa che mi lascia perplesso è che, cronometro alla mano, il ciclo sballa di alcuni secondi... boh, il problema principale era di non bloccare il programma, quella è risolta, la precisione del ritardo non è assolutamente fondamentale

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.