前提・実現したいこと
C#
Visualstudioで、ボタンAを押したときにカウンタが倍速に進み、ボタンBを押すと通常速度に戻るプログラムを作っています。
発生している問題・エラーメッセージ
倍速→通常速度に戻った時、またはボタンAを2回押したときに時間が巻き戻ります
該当のソースコード
bool SpeedUp;
ロード時
StartTime = DateTime.Now;
timerScore.Enabled = true;
ボタンAが押されたとき
SpeedUp=true;
TimeSpan SpeedUpTime=Datetime.now;
private void timerScore_Tick(object sender, EventArgs e) { TimeSpan scoreTimeSpan = new TimeSpan(); TimeSpan speedUpSpan = new TimeSpan(); object timeLockObject = new object(); scoreTimeSpan = DateTime.Now - StartTime; if (speedUp == true) { lock (timeLockObject) { speedUpSpan += DateTime.Now - SpeedUpTime; scoreTimeSpan += speedUpSpan; } } lock (timeLockObject) { labelRemainingTime.Text = scoreTimeSpan.ToString(@"hh\:mm\:ss.ffffff"); } }
誰か解決する方法がわからないでしょうか?
何がしたいのかの「詳細」がわからないので解決する方法もわかりません。私がわからなくても問題はありませんが、他の回答者にもわからないのでは回答がつかないのでは?
念のため繰り返します。わからないのは「詳細」です。
すみません、タイマースタートしたときから現在時刻の差分でカウントアップするようなプログラムを作っています。
ボタンを押したらそのカウントアップの速さを早くする、というものです。
それは詳細ではありません。概略です。赤の他人に詳細がわかるよう質問を書き換えるのが良いと思います。
意図通り動いているコードならそれで詳細が説明できますが、意図通り動いていないものを出し、どこが意図通りでないかを説明しないのでは詳細の説明にはなりません。