始めまして、VB.NET歴4ヶ月のすぺくちゃーと言います。
VB.net(2003)にて、コーディングしているのですが、どうしても判らない
問題があるので質問させてください。
フォームにて一つのCSVファイル(最大200MB位)からStreamReaderを使っての全データを読み込み、そのデータを元にグラフ表示を行う処理と、
クラスにてSystem.Timers.Timerのタイマーを使って1秒間隔で、デバイスから取得したデータをCSVファイルに書き込んでいく処理を行わせています。
CSVの容量が数百KB位までは問題無いのですが、数十MBになってくるとCSVファイルを読込んでいる時にCPUが100%近くに張り付いてしまい、System.Timers.Timerにて収集しているデータの抜けが発生します。
CSVファイルの読み込み時にCPUの負荷率を抑える方法や、高負荷時でも安定したデータ収集を行う方法などがありましたら、教えて下さい。
よろしくおねがいします。
マルチスレッドにするとか、デバイスの方から割り込みをかけるとか色々方法は有ると
思いますが、とりあえず、ファイルがCSVなら、読み込みをReadLineにして、適当な行目毎にSystem.Windows.Forms.Application.DoEvents()を入れるとか。
どの方法が良いかは、もう少しプログラムの仕様がはっきりしないと...
我さん 返信有難うございます!!
マルチスレッドにしたら、うまく行きました!!
アドバイス有難うございました!!!!
ツイート | ![]() |