0

backgroundWorker1参照によって変数を更新するDLL を実行していますi。を使用して進行状況バーを更新するiには、次のコードを使用します。また、パーセンテージをテキストとして表示したいと思います。問題は、テキスト (進行状況バーではない) がちらつくことです。このちらつきを軽減/削除するにはどうすればよいですか? 睡眠時間を増やすことは選択肢ではありません。

BackgroundWorker backgroundWorker1 = new BackgroundWorker();
backgroundWorker1.WorkerReportsProgress = true;
backgroundWorker1.DoWork += (s, args) =>
{
   Mydll.MyCFunction(ref i);
};
backgroundWorker1.RunWorkerAsync();

while (backgroundWorker1.IsBusy)
{
    backgroundWorker1.ReportProgress(i * 100);               
    backgroundWorker1.ProgressChanged += (s, e) =>
    {
       progressBar1.Refresh();
       progressBar1.Value = e.ProgressPercentage;
       progressBar1.CreateGraphics().DrawString(e.ProgressPercentage.ToString() + "%",
            SystemFonts.DefaultFont, Brushes.Black,
            new PointF(progressBar1.Width / 2 - 10, progressBar1.Height / 2 - 7));
    };
    Application.DoEvents();
    System.Threading.Thread.Sleep(200);
}

ありがとう。

4

4 に答える 4