C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: Timerコントロールの軽量化について C#


(過去ログ 133 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■78322 / inTopicNo.1)  Timerコントロールの軽量化について C#
  
□投稿者/ 真人賢者 (1回)-(2016/01/07(Thu) 18:31:30)

分類:[C#] 

Timerコントロールを使って、細かい時間変化をさせたときのアニメーションをプログラムしたいと思っています。
timer1.Interval = 1 で 1ms間隔で変化させる、ということだと思いますが、プログラムが重いせいかカクカク動いてしまってます。
Timerコントロールを軽くする方法など、あったりするのでしょうか?


private void btnAuto_Click(object sender, EventArgs e)
{
if (btnAuto.Text == "Start")
{
btnAuto.Text = "Stop";
timer1.Interval = 1;
timer1.Start();
}
else
{
btnAuto.Text = "Start";
timer1.Stop();
}
}

private void timer1_Tick(object sender, EventArgs e)
{
if (T < 1000)
{
T += 1;
}
else
{
T = 0;
}
Refresh();
}
引用返信 編集キー/
■78325 / inTopicNo.2)  Re[1]: Timerコントロールの軽量化について C#
□投稿者/ みい (38回)-(2016/01/07(Thu) 19:05:44)
No78322 (真人賢者 さん) に返信
Timerコントロールでは1msの精度はでません。

https://msdn.microsoft.com/ja-jp/library/system.windows.forms.timer(v=vs.90).aspx
上記HPのメモ欄より
Windows フォームのタイマ コンポーネントはシングルスレッドで、精度の上限は 55 ミリ秒になります。
より精度の高いマルチスレッド タイマが必要な場合は、System.Timers 名前空間の Timer クラスを使用してください。
引用返信 編集キー/
■78327 / inTopicNo.3)  Re[2]: Timerコントロールの軽量化について C#
□投稿者/ みい (40回)-(2016/01/07(Thu) 19:32:17)
一度「Timer 精度」でググってみてください。

Refreshで画面全体の更新がかかりますから、それにかかる時間も
影響します。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -