2011-02-16 3 views
0

나는 한 번에 목록 상자에 약 500k 목록을 추가하고 반복하는 vb.net 2005 앱을 디자인했습니다.루프 중 앱 응답

이 항목을 목록 상자에 추가하면 약 5 ~ 10 분 동결되고 항목을 반복하면서 항목을 처리하면 같은 시간 동결됩니다. 텍스트 파일에서 데이터를로드합니까

  1. 루프 중에 응용 프로그램을 에 응답하게하려면 어떻게해야합니까?
  2. 목록을 처리하기 위해 대기열을 사용해야합니까?
  3. 메시지 큐 컨트롤은 무엇입니까 용?
+1

첫 번째 질문은 실제로 UI의 500k 항목을 사용하여 수행해야하는 질문 일 것입니다. 나는 모든 사용자가 그 양의 데이터를 다룰 수 있다고 생각하지 않습니다. –

+0

그런 양의 데이터를 처리하는 방법에 관해서는 무엇을 권하고 싶습니까? – Smith

+1

텍스트 파일에 항목이있는 경우 해당 항목을 UI의 목록에로드하여 처리하고 처리하면 파일에서 직접 정보를로드하고 항목을 처리하는 비동기 작업이 생성됩니다. 진행 상황을 표시하기 위해 UI에 정보를 표시합니다. 그러나 당신이하고있는 일의 세부 사항을 모른 채 더 구체적인 조언을하는 것은 어렵습니다. –

답변

1

BackgroundWorker을 사용하는 것이 좋습니다. 배열에 항목을 저장하고 목록 상자에 바인딩합니다. 배열 작업은 훨씬이며 listbox'es 컬렉션을 사용하는 것이 빠릅니다.

또는 새 항목 추가 전후에 BeginUpdate/EndUpdate으로 전화 할 수 있습니다.

+0

lisbox로 BackgroundWorker의 샘플 코드를 보내 주시면 감사하겠습니다. – Smith