回答編集履歴
4
修正
answer
CHANGED
@@ -32,7 +32,7 @@
|
|
32
32
|
これを
|
33
33
|
|
34
34
|
```C#
|
35
|
-
long next = DateTime.Now.Ticks +
|
35
|
+
long next = DateTime.Now.Ticks + 10000;
|
36
36
|
while (_thread != null)
|
37
37
|
{
|
38
38
|
sendMessage(constant.a, constant.b, constant.c);
|
@@ -41,7 +41,7 @@
|
|
41
41
|
{
|
42
42
|
long now = DateTime.Now.Ticks;
|
43
43
|
} while (now < next);
|
44
|
-
next +=
|
44
|
+
next += 10000;
|
45
45
|
}
|
46
46
|
```
|
47
47
|
|
3
修正
answer
CHANGED
@@ -14,7 +14,7 @@
|
|
14
14
|
|
15
15
|
追記
|
16
16
|
|
17
|
-
タイマーを使わずおおざっぱな間隔でメッセージを送ればいいと理解しました。
|
17
|
+
回答へのコメントを受けて、タイマーを使わずおおざっぱな間隔でメッセージを送ればいいと理解しました。
|
18
18
|
|
19
19
|
```C#
|
20
20
|
while (_thread != null)
|
2
追記
answer
CHANGED
@@ -10,4 +10,40 @@
|
|
10
10
|
[Windowsで高精度タイマを使う](https://qiita.com/tobira-code/items/ae0764634f078407662f)
|
11
11
|
|
12
12
|
つまり質問で求められるタイマーの精度はかなり厳しいものと言えます。
|
13
|
-
また、その頻度で処理を行おうとしても、処理が追い付かないことは十分に考えられます。
|
13
|
+
また、その頻度で処理を行おうとしても、処理が追い付かないことは十分に考えられます。
|
14
|
+
|
15
|
+
追記
|
16
|
+
|
17
|
+
タイマーを使わずおおざっぱな間隔でメッセージを送ればいいと理解しました。
|
18
|
+
|
19
|
+
```C#
|
20
|
+
while (_thread != null)
|
21
|
+
{
|
22
|
+
sendMessage(constant.a, constant.b, constant.c);
|
23
|
+
|
24
|
+
n = DateTime.Now.Hour * 60 * 60 * 1000 + DateTime.Now.Minute * 60 * 1000 + DateTime.Now.Second * 1000 + DateTime.Now.Millisecond;
|
25
|
+
time = n - s;
|
26
|
+
Debug.Log(time/1000);
|
27
|
+
|
28
|
+
|
29
|
+
}
|
30
|
+
```
|
31
|
+
|
32
|
+
これを
|
33
|
+
|
34
|
+
```C#
|
35
|
+
long next = DateTime.Now.Ticks + 10;
|
36
|
+
while (_thread != null)
|
37
|
+
{
|
38
|
+
sendMessage(constant.a, constant.b, constant.c);
|
39
|
+
|
40
|
+
do
|
41
|
+
{
|
42
|
+
long now = DateTime.Now.Ticks;
|
43
|
+
} while (now < next);
|
44
|
+
next += 10;
|
45
|
+
}
|
46
|
+
```
|
47
|
+
|
48
|
+
こうすればいいのではないかと思います。
|
49
|
+
ただ、タイマーを使わず時間までめいっぱい働いているので当然他の処理は滞り、取りこぼしが多くなることが予想されます。
|
1
追記
answer
CHANGED
@@ -3,6 +3,7 @@
|
|
3
3
|
[C#のSystem.Threading.Timerクラスの精度を確認する](http://takachan.hatenablog.com/entry/2017/03/30/005432)
|
4
4
|
|
5
5
|
1ms の精度が欲しいということなので、これでは全然足りません。
|
6
|
+
またこれは Unity のタイマーの精度と同じです。
|
6
7
|
難易度はぐっと上がりますが Waitable Timer ならば 0.5ms の解像度で使えることもあるそうです。
|
7
8
|
(ただし環境依存)
|
8
9
|
|