System.Threading.Timerを使用する既存の .NET クラス ライブラリを、Windows 8.1 を対象とする Windows ストア アプリに移植しています。クラスは利用可能ですが、対応する .NET Framework に関連していくつかのTimer
オプションが欠落しているようですTimer
。
特に、Windows ストア バージョンで使用できるコンストラクターは 2 つだけです。
public Timer(TimerCallback callback, Object state, int dueTime, int period);
public Timer(TimerCallback callback, Object state, TimeSpan dueTime, TimeSpan period);
.NET Framework には、次の追加のコンストラクターが含まれています。
public Timer(TimerCallback callback);
これは、MSDNのドキュメントセットdueTime
とオブジェクト自体によるperiod
ものです。Timeout.Infinite
state
Timer
単一の引数コンストラクターを置き換えようとしてTimer
、次のように、Windows 8.1 コンストラクターの 1 つにオブジェクトを渡すことを「素朴に」試みました。
Timer t;
t = new Timer(MyCallback, t, Timeout.Infinite, Timeout.Infinite); // WILL NOT WORK!!!
もちろん、これはコンパイルエラーのみを引き起こします
割り当てられていないローカル変数 't' の使用
また、クラスにはState
セッターやSetState
メソッドがないため、構築後に を設定することはできません。Timer
state
Timer(TimerCallback)
完全なフレームワークのコンストラクターを完全に模倣するにはどうすればよいですか?