【症状】
「間」「ループ」で65536回以上になると処理が遅くなる
【再現方法】
// 1秒ごとに回数を表示するプログラム
次表示時間はシステム時間+1000
1でループ
もし次表示時間<=システム時間ならば
回数を表示
次表示時間はシステム時間+1000
(実行結果)
最初の1秒は65000回以上進むのに、それ以降は1秒に60回ほどしか進みません。
なでしこで「0秒待つ」すると0.015秒ほど処理が止まってイベントが処理されるので多分一致。
65536回以降は毎回イベントを見に行ってるため遅くなっているのだと思います。
【要望】
ループの何回かごとにイベントを確認することで「応答なし」を防ぎたかったのだと思いますが
ループの内容によっては65536回に1回ではやっぱり応答なしになりそうです。
ループの開始時にシステム時間をとって2秒ごとにイベントを見に行く、とかがいいと思います。
//疑似コード
イベント確認=システム時間+2000//ミリ秒
1でループ
もしイベント確認<=システム時間ならば
windowsのイベントを処理
イベント確認=システム時間+2000//ミリ秒
【バージョン】
ver1.581
【その他】
2021/02/08 version 1.581
- 無限ループ対策で「回数」が4096で0に戻ってしまう問題を修正(
@935)
に関連