/// <summary> /// タイマーをスタートする /// </summary> private void Start() { if (timerId == 0) { TickedCallback tick = new TickedCallback(timer_Tick); callback = GCHandle.Alloc(tick); timerId = TimeSetEvent(moveInterval, 0, tick, IntPtr.Zero, TimerEventTypes.Periodic); if (this.timerId == 0) { this.callback.Free(); throw new InvalidOperationException("マルチメディアタイマの初期化に失敗しました。"); } } }
private static extern int TimeSetEvent(int delay, int resolution, TickedCallback ticked, IntPtr user, TimerEventTypes type);