Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it L'avatar di Kahm
    Registrato dal
    Dec 2004
    residenza
    Rome
    Messaggi
    3,582

    [vba] rallentare sistema con thread e sleep

    dato lo seguente codice da me scritto il codesta sezione
    codice:
    Option Explicit
    Private Declare Function CreateThread Lib "kernel32" (lpThreadAttributes As Any, ByVal dwStackSize As Long, ByVal lpStartAddress As Long, lpParameter As Any, ByVal dwCreationFlags As Long, lpThreadID As Long) As Long
     Const CTF_COINIT = &H8
    Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
     Const CTF_INSIST = &H1
     Const CTF_PROCESS_REF = &H4
     Const CTF_THREAD_REF = &H2
    
    Private Declare Function SHCreateThread Lib "shlwapi.dll" (ByVal pfnThreadProc As Long, pData As Any, ByVal dwFlags As Long, ByVal pfnCallback As Long) As Long
    
    Sub Main()
    Dim hnd&
        Dim threadparam As Long
        hnd = CreateThread(0, 2000, AddressOf CreateThread, threadparam, 0, threadid)
                
    End Sub
    
    Public Sub myNewThread()
     Dim i As Integer
     For i = 0 To 99
     Sleep (1000)
     Debug.Print "message from a new thread (" & i & ")"
     Next i
    lo mio problema è che vba persevera nel inviarmi lo messaggio:
    "invalid use of addressOF"
    NN vi diro mai chi sono in realta,
    tutti i miei 3D sono orfani, non insistete per farmi rispondere ai 3D aperti da me

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

    Re: [vba] rallentare sistema con thread e sleep

    Originariamente inviato da Kahm
    vba persevera nel inviarmi lo messaggio:
    "invalid use of addressOF"
    E fa bene ... :-)

    L'indirizzo deve essere quello della Sub

    AddressOf myNewThread


    P.S. In ogni caso, l'uso dei thread con VBA non è proprio raccomandato ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it L'avatar di Kahm
    Registrato dal
    Dec 2004
    residenza
    Rome
    Messaggi
    3,582

    Re: Re: [vba] rallentare sistema con thread e sleep

    Originariamente inviato da oregon
    E fa bene ... :-)

    L'indirizzo deve essere quello della Sub

    AddressOf myNewThread


    P.S. In ogni caso, l'uso dei thread con VBA non è proprio raccomandato ...
    dopo numerosi tentativi insoluti
    son giunto a modificare lo codice da me fatto
    confermo che era proprio myNewThread quindi corretto


    possa vb6 avere pietà di me
    NN vi diro mai chi sono in realta,
    tutti i miei 3D sono orfani, non insistete per farmi rispondere ai 3D aperti da me

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    In tutti i casi, non capisco perché devi "rallentare" il sistema e soprattutto perché per farlo devi utilizzare un thread.

    E poi i thread non vanno affatto bene con VB6/VBA ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it L'avatar di Kahm
    Registrato dal
    Dec 2004
    residenza
    Rome
    Messaggi
    3,582
    Originariamente inviato da oregon
    In tutti i casi, non capisco perché devi "rallentare" il sistema e soprattutto perché per farlo devi utilizzare un thread.

    E poi i thread non vanno affatto bene con VB6/VBA ...
    è uno programma che deve eseguire delle operazioni continue su un programma esterno, simulando un operatore
    essendo che ogni computer puo essere veloce o meno devo gestire le tempistiche di attesa

    in pratica su un i7 non fa in tempo a scrivere che già cerca di leggere in un'altra parte
    NN vi diro mai chi sono in realta,
    tutti i miei 3D sono orfani, non insistete per farmi rispondere ai 3D aperti da me

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ma lavori con VBA (Access? Excel?) o VB6 ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it L'avatar di Kahm
    Registrato dal
    Dec 2004
    residenza
    Rome
    Messaggi
    3,582
    Originariamente inviato da oregon
    Ma lavori con VBA (Access? Excel?) o VB6 ?
    VBA con TestPartner

    in pratica TestPartner si è comprata la licenza di visual basic for application e lo ha inserito nel suo tool
    ma pare che ci siano delle carenze,
    NN vi diro mai chi sono in realta,
    tutti i miei 3D sono orfani, non insistete per farmi rispondere ai 3D aperti da me

  8. #8
    Utente di HTML.it L'avatar di Fractals87
    Registrato dal
    Apr 2008
    Messaggi
    1,202
    Perdonate l'itromissione,

    Se non erro (Sempre se gestisci la cosa tramite db e sempre se access abbia una fuzione del genere cosa che sql server ho letto che ha), su puo creare un commandinsert che blocchi la tabella dalle furute read fino a che non ha finito di scrivere.

    Le altre operazioni dovrebbero rimanete in attesa fino alla commit.
    Che mestiere difficile.....essere da soli ancora di più

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Basta usare la API Sleep ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Originariamente inviato da Kahm
    essendo che ogni computer puo essere veloce o meno devo gestire le tempistiche di attesa
    Non fai prima a definire in una struttura dati le operazioni che il tuo "automa" deve compiere e, attraverso un Timer, senza chiamare alcuna Sleep, eseguire la prima operazione, poi la seconda al prossimo "tick", poi la terza e così via fino a esaurimento?
    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.