Fast Timer


SUBMITTED BY: Guest

DATE: Jan. 2, 2014, 12:48 p.m.

FORMAT: Text only

SIZE: 5.5 kB

HITS: 1749

  1. Imports System.ComponentModel
  2. Imports System.Threading
  3. <DefaultEvent("Tick")> _
  4. Public Class FastTimer
  5. Inherits System.ComponentModel.Component
  6. Public Event Tick(ByVal e As Integer)
  7. Public Event LetterTick(letter As String)
  8. Private _started As Boolean = False
  9. Public Property Speed As State = State.Fastest
  10. Public Property CountStyle As CountStyleState = CountStyleState.Up
  11. Public Property CountValueType As CountValueState
  12. Public Enum State
  13. Fastest = 0
  14. Fast = 1
  15. Normal = 2
  16. Slow = 3
  17. Slowest = 4
  18. End Enum
  19. Public Enum CountValuestate
  20. Numbers
  21. Letters
  22. End Enum
  23. Public Enum CountStyleState
  24. Up = 0
  25. Down = 1
  26. End Enum
  27. Public Sub [Stop]()
  28. _started = False
  29. ticks = 0
  30. End Sub
  31. Public Sub Enable()
  32. _started = True
  33. End Sub
  34. Public Property Interval As Integer = 1
  35. Dim ticks As Integer = 0
  36. Dim Cletter As Letter = Letter.Z
  37. Public Sub Start()
  38. While (_started)
  39. If CountValueType = CountValuestate.Numbers Then
  40. If CountStyle = CountStyleState.Up Then
  41. ticks += 1 + Interval
  42. ElseIf CountStyle = CountStyleState.Down Then
  43. ticks -= 1 + Interval
  44. End If
  45. checkstate(Speed)
  46. RaiseEvent Tick(ticks)
  47. Else
  48. If CountStyle = CountStyleState.Up Then
  49. checkletter()
  50. checkstate(Speed)
  51. RaiseEvent LetterTick([Enum].GetName(GetType(Letter), Cletter))
  52. End If
  53. End If
  54. End While
  55. End Sub
  56. Sub checkletter()
  57. Select Case Cletter
  58. Case Letter.A
  59. Cletter = Letter.B
  60. Case Letter.B
  61. Cletter = Letter.C
  62. Case Letter.C
  63. Cletter = Letter.D
  64. Case Letter.D
  65. Cletter = Letter.E
  66. Case Letter.E
  67. Cletter = Letter.F
  68. Case Letter.F
  69. Cletter = Letter.G
  70. Case Letter.G
  71. Cletter = Letter.H
  72. Case Letter.H
  73. Cletter = Letter.I
  74. Case Letter.I
  75. Cletter = Letter.J
  76. Case Letter.J
  77. Cletter = Letter.K
  78. Case Letter.K
  79. Cletter = Letter.L
  80. Case Letter.L
  81. Cletter = Letter.M
  82. Case Letter.M
  83. Cletter = Letter.N
  84. Case Letter.N
  85. Cletter = Letter.O
  86. Case Letter.O
  87. Cletter = Letter.P
  88. Case Letter.P
  89. Cletter = Letter.Q
  90. Case Letter.Q
  91. Cletter = Letter.R
  92. Case Letter.R
  93. Cletter = Letter.S
  94. Case Letter.S
  95. Cletter = Letter.T
  96. Case Letter.T
  97. Cletter = Letter.U
  98. Case Letter.U
  99. Cletter = Letter.V
  100. Case Letter.V
  101. Cletter = Letter.W
  102. Case Letter.W
  103. Cletter = Letter.X
  104. Case Letter.X
  105. Cletter = Letter.Y
  106. Case Letter.Y
  107. Cletter = Letter.Z
  108. Case Letter.Z
  109. Cletter = Letter.A
  110. End Select
  111. Application.DoEvents()
  112. End Sub
  113. Sub checkstate(ByVal states As State)
  114. Select Case states
  115. Case State.Fastest
  116. Thread.Sleep(0)
  117. Case State.Fast
  118. Thread.Sleep(100)
  119. Case State.Normal
  120. Thread.Sleep(1000)
  121. Case State.Slow
  122. Thread.Sleep(10000)
  123. Case State.Slowest
  124. Thread.Sleep(100000)
  125. Case Else
  126. Thread.Sleep(0)
  127. End Select
  128. Application.DoEvents()
  129. End Sub
  130. Public Enum Letter
  131. A
  132. B
  133. C
  134. D
  135. E
  136. F
  137. G
  138. H
  139. I
  140. J
  141. K
  142. L
  143. M
  144. N
  145. O
  146. P
  147. Q
  148. R
  149. S
  150. T
  151. U
  152. V
  153. W
  154. X
  155. Y
  156. Z
  157. End Enum
  158. End Class

comments powered by Disqus