タイマーを表示するアプリケーションがあります。
ユーザーはイベントを実行し、一定の時間内にそれを完了する必要があります。私は現在、彼らの時間が刻々と過ぎていることを示すタイマーを持っていますが、私が今欲しいのは合計累積時間です。したがって、新しいイベントが開始されるたびに、イベントを完了する時間が累積時間に追加されます。そして、彼らがイベントを実行している間、時間は累積時間を刻みます。
これは私が「現在のタイマー」のために持っているものです
u.StartingTime = u.ChangeOverStandard;
u.CurrentChangeOverTime = u.StartingTime - (DateTime.Now - u.ChangeOverStart);
これらのフィールドはすべてタイムスパンです。これは彼らの「現在の」タイマーに最適です
しかし、正のタイムスパン値を表示する「合計」タイマーが必要です。想定される前に完了している場合は...または時間がかかりすぎる場合は負のタイムスパン値を表示します。
編集:
だから私はこれを達成したい:
例:「イベント1」の場合、ユーザーは30秒です。最後まで。次に、ユーザーは「TotalTimespan」プロパティ= 30を持ちます。この合計は、イベントタイマーとともに減少します。彼が24秒で終了したとしましょう。つまり、TotalTimespanの残り時間は6秒です。その後、「event2」は40秒で終了する必要があります。したがって、event2の開始時に、TotalTimespan = TotalTimespane(6)+ 40. =46。ユーザーが60秒を使用する場合、TotalTimespan = 46 -60=-14。
「タイマー」はタイマーではないため、タイマーとして使用することはできません。他のいくつかの計算も行っているバックグラウンドワーカーで実行されています。ですから、一度に1秒ずつ時間を離すことはできません。
新しいイベントごとに、私は試しました
u.AccumulatedTime += u.ChangeOverStandard;
その後
u.AccumulatedTime -= u.StartingTime - (DateTime.Now - u.ChangeOverStart);
しかし、ループ全体のラウンドごとに累積時間から合計経過時間がかかるため、明らかにそれは機能しません
DateTime.Now - u.ChangeOverStart
^^イベント開始から現在までの経過時間を教えていただけますので、これが欲しいですか?
u.AccumulatedTime -= DateTime.Now - u.ChangeOverStart;