0

私はこの機能を持っています...

Instance(uint InstanceId) { }

その中にはこのコードが...

        mUpdater = new Timer(new TimerCallback(PerformUpdate), null, TimeSpan.FromMilliseconds(500), TimeSpan.FromMilliseconds(500));

500 ミリ秒ごとに PerformUpdate を更新します。

PerformUpdate には、ユーザーに特定の変数が定義されているかどうかを計算するための IF ステートメントがあります。ユーザーが変数を持っている場合、500ミリ秒ではなく300ミリ秒ごとにのみ更新されるようにするにはどうすればよいですか.

ああ、それはユーザーごとのコマンドであり、インスタンスはすべてのユーザー用であるため、インスタンス関数内で設定することはできません。

助けていただければ幸いです。

4

1 に答える 1

2

これは 用のようですが、System.Threading.TimerではありませんSystem.Timers.Timerよね?Changeでメソッドを呼び出してSystem.Threading.Timer、開始時刻と間隔を変更できます。

var variableDefined = true;        
var threadingCallback = new System.Threading.TimerCallback((o) => { });
var threadingTimer = new System.Threading.Timer(threadingCallback, null, 0, 500);
if (variableDefined) {
    threadingTimer.Change(0, 300);
}
于 2013-02-20T14:32:40.773 に答える