内容へ移動
FiFiWiki2
FiFiWikiの第2版
ユーザ用ツール
ログイン
サイト用ツール
検索
ツール
文書の表示
以前のリビジョン
バックリンク
最近の変更
メディアマネージャー
サイトマップ
ログイン
>
最近の変更
メディアマネージャー
サイトマップ
現在位置:
top
»
c.sharp
»
非同期_プログレスバー
c.sharp:非同期_プログレスバー
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
# [時間のかかる処理の進行状況を表示する - .NET Tips (VB.NET,C#...)](https://dobon.net/vb/dotnet/programing/displayprogress.html) - Update()を使う方法 ```c //ProgressBar1の値を変更する (非同期がデフォルト) ProgressBar1.Value = i; //Label1のテキストを変更する Label1.Text = i.ToString(); //Label1を再描画する Label1.Update(); //(フォーム全体を再描画するには、次のようにする) //this.Update(); ``` - BackgroundWorkerを使う方法 -- ユーザーがキャンセルできるようにする - Threadクラスを使用したスレッド化による方法 -- ユーザーがキャンセルできるようにする # BeginInvoke ```c private void button_StartRecording_Click(object _s, EventArgs _e) { StartRecording(); // 開始時に間隔を指定する var timer = new System.Timers.Timer(100/*msec*/); // Elapsedイベントにタイマー発生時の処理を設定する timer.Elapsed += (sender, e) => { try { timer.Stop(); // もしくは timer.Enabled = false; // 何らかの処理 Debug.WriteLine($"rms: {rms}"); progressBar_AudioMeter.BeginInvoke(new Action(() => { //float value = (float)Math.Log10(rms + 0.001); progressBar_AudioMeter.Value = (int)(audioVolumeMax * 100.0); //UIスレッドで実行すべき処理 })); } finally { timer.Start(); // もしくは timer.Enabled = true; } }; // タイマーを開始する timer.Start(); } ```
c.sharp/非同期_プログレスバー.txt
· 最終更新: 2018/04/24 12:03 by
fifi
ページ用ツール
文書の表示
以前のリビジョン
バックリンク
ページの名称変更
文書の先頭へ