처리해야할 데이터 수가 몇십만개 이상일 경우 폼이 뜨지 않거나 느려지는 경우가 있습니다.
이럴 경우 프로그레스 바 등을 이용하여 비동기로 처리하면 폼이 안뜨는 현상을 방지하고 백그라운드에서 오래걸리는 작업을 수행할 수 있습니다.
시리즈리스트와 시리즈 선언 위치, 백그라운드워커 컨트롤에서 제공하는 각 이벤트에 히포차트 코드를 어떻게 배치하는지 보시면 되겠습니다.
아래 코드 참고하시기 바랍니다.
public partial class Form1 : Form
{
SeriesList sList = new SeriesList ();
Series sr = new Series();
public Form1()
{
InitializeComponent();
}
private void Form1_Load( object sender, EventArgs e)
{
this.progressBar1 .Maximum = 100000;
sList .ChartType = ChartType.Line;
backgroundWorker1 .RunWorkerAsync();
}
private void backgroundWorker1_DoWork( object sender, DoWorkEventArgs e)
{
Random r = new Random();
for ( int x = 0; x < 100000 ; x++)
{
SeriesItem item = new SeriesItem ();
item .Name = x .ToString();
item .YValue = r .Next( 90);
sr .items .Add(item);
backgroundWorker1 .ReportProgress( 1); // 계산된 값으로 수정
}
}
private void backgroundWorker1_ProgressChanged( object sender, ProgressChangedEventArgs e)
{
this.progressBar1 .Value = e .ProgressPercentage;
}
private void backgroundWorker1_RunWorkerCompleted( object sender, RunWorkerCompletedEventArgs e)
{
// 에러가 있는지 체크
if (e .Error != null)
{
MessageBox.Show(e .Error .Message);
return;
}
sList .SeriesCollection .Add(sr);
this.hHippoChart1 .SeriesListDictionary .Add(sList);
this.hHippoChart1 .DrawChart();
MessageBox.Show("completed");
}
}
사업자 정보 표시
히포차트 | 하영대 | 경기도 성남시 수정구 복정동 631-5 401 | 사업자 등록번호 : 129-34-55719 | TEL : 031-751-6673 | Mail : hippochart@gmail.com | 통신판매신고번호 : 제 2010-경기성남-1203호 | 사이버몰의 이용약관 바로가기
'히포차트4 > 개발 강좌' 카테고리의 다른 글
Hippochart를 WPF 윈도우 어플리케이션에 추가해보자. (0) | 2013.05.28 |
---|---|
jQuery를 사용하여 JSON 타입의 데이터로 히포차트 그리기 (1) | 2013.05.25 |
히포차트를 asp.net MVC 어플리케이션에 추가해보자! (0) | 2013.05.24 |
히포차트4 - 마우스 드래그 이벤트 줌(확대) 응용하기 참조 코드 (0) | 2013.02.13 |
히포차트4 - 마우스 드래그 이벤트 잡기 (Zoom 기능 응용) (1) (0) | 2013.02.12 |