2009-12-15 3 views
0

약 400 개의 행과 10 개의 열이있는 DataGridView가 있습니다. 사용자가이 테이블을 처음 표시하면 서버에서 모든 데이터를 수신하고 테이블을 채 웁니다. DGV는 DataTable을 데이터 소스로 사용하고 DataTable을 업데이트 할 때 row.BeginEdit/EndEdit 및 acceptChanges를 사용하지만 View 자체가 업데이트되면 모든 DGV가 업데이트되는 동안 지연됩니다. 예를 들어 사용자가 데이터를 스크롤하면서 업데이트하는 경우 스크롤이 중단되지 않습니다. 이렇게하면 원활하게 처리 할 수 ​​있는지 궁금합니다. 또는 사용자가 화면 주위로 디스플레이를 움직이고 업데이트하면 중단되지 않습니다. 이 작업을 수행하는 쉬운 방법이 있습니까? 그렇지 않은 경우 모든 이벤트가 종료 될 때까지 DGV가 뷰를 업데이트하지 못하게하여 사용자가 스크롤링, 드래그 등을 중지 할 때까지 다시 그리지 않습니다.DataGridView가 큰 데이터 업데이트로 1 초 지연됩니다.

답변

0

내 생각에 떠오르는 아이디어는 BackgroundWorker입니다. 그런 다음 BackgroundWorker 업데이트가 진행되는 동안 주 스레드, 즉 GUI 스레드를 차지하지 않습니다.

0

디버거/프로파일 러를 실행하여 속도 저하의 실제 원인을 확인하십시오. 범인이 어느 선인지 알아 내면이 질문에 대답하는 것이 더 쉬울 것입니다.

관련 문제