1秒ごとに定期的に関数を実行したいので、10秒後に10回実行します。 最も簡単な方法は、次のようにループを使用している:sleep-until in C#
while(true)
{
Thread.Sleep(1000);
function();
}
をしかし、このアプローチの主な問題は、それが任意の周期保証を提供しないことです。 それは(関数を実行するために0.1秒かかる場合、私は、関数の実行時間は次のようになります)意味:私はリアルタイム言語で、覚えていたよう 0、1.1、2.2、3.3、4.4、...
ADAにはsleep-until(#time)関数があります。今私はC#の代替を探しています。
任意のサンプルコードが承認されます。
小さなインバージョンでスリープして、コードを実行する前に全秒が経過したかどうかを確認します。 – VVS
function()が実行するのに1秒以上かかる場合はどうしますか? –
c#はリアルタイム言語ではありません。そのスレッドは、他のスレッド/プロセスが存在する可能性があるため、正確に1秒後に実行されます。正確にする必要がある場合は、他のツールを使うべきでしょうか? – YavgenyP