C# эквивалент кода VB 6.0

Option Explicit  
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long

Private Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long, lpExitCode As Long) As Long    

Function TimerCreate() As Boolean

    If g_CTimer Is Nothing Then Exit Function

    ' Create the timer
    g_CTimer.TimerID = SetTimer(0&, 0&, g_CTimer.Interval, AddressOf TimerProc)
    If g_CTimer.TimerID Then
        TimerCreate = True
    Else
        TimerCreate = False
        g_CTimer.TimerID = 0
     End If   
End Function  

Sub TimerProc(ByVal hwnd As Long, ByVal uMsg As Long, ByVal idEvent As Long, ByVal dwTime As Long)
    On Error Resume Next

    If g_CTimer Is Nothing Then Exit Sub
    g_CTimer.ThatTime
End Sub

1 ответ

Для таймера вы, вероятно, хотите:

System.Threading.Timer myTimer =
    new System.Threading.Timer(TimerProc, null, g_CTimer.Interval, g_CTimer.Interval);

См. System.Threading.Timer.

Если вам действительно нужно использовать мультимедийные таймеры (я бы не рекомендовал это делать), я бы посоветовал вам ознакомиться с Windows Timers и проверить pinvoke.net на наличие управляемых прототипов. Например, SetTimer.

Другие вопросы по тегам