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.InfinitestateTimer
単一の引数コンストラクターを置き換えようとしてTimer、次のように、Windows 8.1 コンストラクターの 1 つにオブジェクトを渡すことを「素朴に」試みました。
Timer t;
t = new Timer(MyCallback, t, Timeout.Infinite, Timeout.Infinite); // WILL NOT WORK!!!
もちろん、これはコンパイルエラーのみを引き起こします
割り当てられていないローカル変数 't' の使用
また、クラスにはStateセッターやSetStateメソッドがないため、構築後に を設定することはできません。Timerstate
Timer(TimerCallback)完全なフレームワークのコンストラクターを完全に模倣するにはどうすればよいですか?