• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VB2005のLABEL等のコントロールの表示速度がVB6時代よりかな)

VB2005のLABEL等のコントロールの表示速度がVB6時代より遅い

このQ&Aのポイント
  • VB2005のLABEL等のコントロールの表示速度がVB6時代よりかなり遅いように感じます。実際遅いのですが、早くする方法はございますか?
  • LABELを80個ほど並べて実行してもLABELが右から左へぱらぱらと表示されますのでプログラムの影響ではないと思います。
  • タイマーで1秒周期でデータをファイルに書き込んでいるのですが、表示が終わるまでタイマーイベントが待たされるため、フォームの切り替えで1秒周期に歯抜けが生じることがあります。改善策をご存知の方がいらっしゃいましたら教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • AKARI0418
  • ベストアンサー率67% (112/166)
回答No.1

とりあえず歯抜けの対策です。 System.Threading.Timer を使用してください。 これを使用することで、 UIスレッドとは別のスレッドで、作業させることができます。 または、バックグラウンドワーカーを生成し、 バックグラウンドワーカーで、 ファイルへの書き込み処理を行ってください。

OVERQ
質問者

お礼

御礼が遅くなり申し訳ありません。(四苦八苦してたもので) 結果から言うとうまくいきました! 下記コードのようにバックグラウンドワーカーを作成したところ、1秒ごとのCSV書き出しが 100%歯抜けになることなく動作しています。色々テストをして、どんなに画面表示を重くしても問題ありません。 この度は有難う御座いました。 Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork Static T1 As Integer Do T1 = timeGetTime Call DataLogging() 'CSV出力処理 System.Threading.Thread.Sleep(1000 - (timeGetTime - T1)) '1秒からCSV出力処理にかかった時間を引き、その間Threadスリープ Loop While gblnEndFlg = False End Sub

関連するQ&A