SetTimer APIで問題が発生しています。
好奇心のために、Delphi のその他のオプションは何ですか?
- マルチメディアタイマーがあります
TTimer
しかし、それは SetTimer / KillTimer の単なるラッパーです
SetTimer APIで問題が発生しています。
好奇心のために、Delphi のその他のオプションは何ですか?
TTimer
しかし、それは SetTimer / KillTimer の単なるラッパーですcodeproject.com/Articles/1236/Timers-Tutorial#QueueTimersすべてここで説明されています。マルチメディア タイマーを使用するのは少しためらっていますが、Windows 8 でのパフォーマンスは良好です。いずれにせよ、キュー タイマーまたはマルチメディア タイマーを使用すると、はるかに優れた結果が得られます。
特定のタイミングで作業を行う必要がある場合は、スレッドで作業を行う必要があるかどうかも確認する必要があります。タイマー イベントの処理とメイン スレッドから別のスレッドへの作業のオフロードには、設定方法と実行方法の両方で大きな違いがあります (ますます多くのハードウェアにマルチコア プロセッサが搭載されていることを考えると)。
これを行う最も基本的な方法は TThread から継承することですが、それほど単純ではありません。(「プロジェクトの新規作成」ダイアログの「スレッド」またはドキュメントを参照してください) Delphi 用のスレッド プラットフォームも多数あります。
Delphi コンポーネントとしてキュー タイマー ラッパーを作成しました
。プロジェクトは中止されましたが、コードを取得するか、パッケージをTksTimer
インストールできます。ksTools