Salut à tous,
J'ai déjà posé la question, mais je n'ai pas eu de réponse ...
Je suis musicien de longue date, et de ce fait, j'écris beaucoup de dources qui tournent autour de ce sujet.
J'ai réussi, non sans mal, à déchiffrer les fichier mid's. Mais pour l'exécution, j'ai le timer rapide qui ne suit pas trop, surtout si plusieurs applications tournent. Voici une section du timer que j'utilise dans un UserControl :
'=======================================================================================
' Mise en service du timer
'---------------------------------------------------------------------------------------
Public Function Start_Timer() As Boolean
'---------------------------------------------------------------------------------------
Dim Resultat As Long
'---------------------------------------------------------------------------------------
Actif = True: Start_Timer = True: Evenement = True
Do
If Evenement Then Evenement = False: RaiseEvent Timer
FT.Long_High = -1: FT.Long_Low = -1
Resultat = API_KL_Set_Waitable_Timer(Timer_Handle, FT, 0, 0, 0, False)
Do
If API_US_Msg_Wait_For_Multiple_Objects(1, Timer_Handle, False _
, INFINITE, QS_ALLINPUT) = WAIT_OBJECT_0 Then Exit Do
DoEvents
Loop
If m_Valeur > 0 Then
m_Valeur = m_Valeur - 1
If m_Valeur <= 0 Then Evenement = True
End If
Loop While Actif = True
End Function
Cela fonctionne, mais la priorité ce ce timer n'est pas très élevé, malgré son attribution
'=======================================================================================
' Initialisation personnelle contrôle
'---------------------------------------------------------------------------------------
Private Sub UserControl_Initialize()
'---------------------------------------------------------------------------------------
' API_KL_Set_Priority_Class API_KL_Get_Current_Process, HIGH_PRIORITY_CLASS
' API_KL_Set_Thread_Priority API_KL_Get_Current_Thread, THREAD_BASE_PRIORITY_MAX
Timer_Handle = API_KL_Create_Waitable_Timer(0, True, "UC_Timer_MIDI")
Timer_Thread = API_KL_Get_Current_Thread
API_KL_Set_Priority_Class Timer_Handle, HIGH_PRIORITY_CLASS
API_KL_Set_Thread_Priority Timer_Thread, THREAD_BASE_PRIORITY_IDLE
End Sub
Ma question est simple : Existe-t-il un timer plus fiable que celui-ci.
Merci
juju59