質問編集履歴

2

intervalをStopwatch.Frequencyの数値から算出するように変更

2018/11/13 03:04

投稿

gucha
gucha

スコア55

test CHANGED
File without changes
test CHANGED
@@ -154,7 +154,11 @@
154
154
 
155
155
  // 1/60秒の間隔
156
156
 
157
+ // コメントにて指摘されたので修正
158
+
157
- int interval = 166667;
159
+ // int interval = 166667;
160
+
161
+ float interval = 1f / 60f * Stopwatch.Frequency;
158
162
 
159
163
 
160
164
 

1

Stopwatchを使用した指定間隔ループのコードを追加しました。

2018/11/13 03:04

投稿

gucha
gucha

スコア55

test CHANGED
File without changes
test CHANGED
@@ -127,3 +127,65 @@
127
127
 
128
128
 
129
129
  原因と対処法があれば教えて頂きたいです。
130
+
131
+
132
+
133
+
134
+
135
+ ---
136
+
137
+ 追記
138
+
139
+
140
+
141
+ Stopwatchを使用したコードを考えてみました。
142
+
143
+ 上手く機能しているように思いますが間違いや注意点などがあれば教えてください。
144
+
145
+
146
+
147
+ ```C#
148
+
149
+ Stopwatch stopwatch = new Stopwatch();
150
+
151
+ private void Button_Click(object sender, RoutedEventArgs e)
152
+
153
+ {
154
+
155
+ // 1/60秒の間隔
156
+
157
+ int interval = 166667;
158
+
159
+
160
+
161
+ while (true)
162
+
163
+ {
164
+
165
+ if (stopwatch.ElapsedTicks >= interval)
166
+
167
+ {
168
+
169
+ // 指定した間隔を超えた時の処理
170
+
171
+ Console.WriteLine(stopwatch.ElapsedMilliseconds);
172
+
173
+ stopwatch.Restart();
174
+
175
+ }
176
+
177
+ else
178
+
179
+ {
180
+
181
+ // 指定した間隔未満だった時の処理 Stopwatchを再開
182
+
183
+ stopwatch.Start();
184
+
185
+ }
186
+
187
+ }
188
+
189
+ }
190
+
191
+ ```