Enabled
プロパティウィンドウでプロパティをtrueに設定すると機能するフォームで使用されるWindows.Forms.Timerがあり、それが機能するのはそのときだけです。無効のままにして、必要なときにのみ有効にすると、カチカチ音をたてません。
private void btnRename_Click(object sender, EventArgs e)
{
timerUpdateProgress.Enabled = true;
timerUpdateProgress.Start();
pbProgress.Maximum = clbFiles.CheckedItems.Count;
var renameTask = Task.Factory.StartNew(() => doRename(true, tbCurrentDirectory.Text, clbFiles.CheckedItems, rules));
if(renameTask.Result.Count > 0)
{
timerUpdateProgress.Enabled = false;
new ExceptionsWindow(renameTask.Result).ShowDialog();
}
timerUpdateProgress.Enabled = false;
loadFiles(tbCurrentDirectory.Text);
}
private void timerUpdateProgress_Tick(object sender, EventArgs e)
{
pbProgress.Value = progress; //I have a breakpoint on this line
}
私がやろうとしているのは、進行状況バーで操作の進行状況を表示することだけです。タイマーを有効にして開始しても何も起こらず、ティックは発生しません。なぜこうなった?
更新: タイマーを有効にして開始した後に 2000 ミリ秒のスリープを追加した後、コードをステップ実行すると、タイマーがまだティックしていないことが示されます (ティック ハンドラーにブレークポイントがあります)。
より明確にする: プロパティ ウィンドウでタイマーが有効になっている場合、ティック ハンドラーは常に呼び出されStart()
ます。タイマーを有効にするだけで、ブレークポイントが常にトリガーされます。また、.NET 4 を使用していることにも注意してください。