2010-02-04 2 views
-2

스레드와 백그라운드 작업자를 사용하여 백그라운드에서 프로세스를 실행해야합니다. 이 프로세스는 데이터베이스에서 데이터를 검색하는 작업을 수행합니다. 데이터 그램을 datagridview에 표시 할 수 없으면 일부 데이터 오류 이벤트가 발생합니다.C에서 백그라운드에서 프로세스를 실행하는 방법 .net #

+1

어떤 예외 메시지가 표시됩니까? – Kane

+1

@haresh chande : 우선해야 할 일은 SO와 elesewhere를 검색하고 backgroundworker 클래스를 사용하는 방법을 비교하는 것입니다 ... –

+0

어떤 프레임 워크를 사용하고 계십니까? – karthik

답변

-2

DataGridView 컨트롤을 수정할 수없는 경우 일 수 있습니다. 는 월

+3

그건 좋은 조언이 아니야. 그 설정은 개발자에게 그들이 뭔가 잘못하고 있음을 알려주는 것입니다. 당신이 추천하는 것은 기본적으로 누군가에게 연기 탐지기가 꺼지면 배터리를 꺼내고 다시 잠을 자고 말하는 것과 같습니다. – Josh

+2

... 그 삑삑이 없이는 확실히 평화 롭습니다 .... –

3

BackgroundWorker에이 자동으로 UI 스레드에 크로스 스레드 마샬링을 처리로 당신은 와이어와 RunWorkerCompleted의 콜백 메소드에 내장되어 작동, CheckForCrossThreadcalls = 거짓 을 설정합니다. RunWorkerAsync으로 전화하기 전에 RunWorkerCompleted 이벤트에 연결할 수 있습니다. 내

backgroundWorker1.RunWorkerCompleted += 
       new RunWorkerCompletedEventHandler(
      backgroundWorker1_RunWorkerCompleted); 

backgroundWorker1_RunWorkerCompleted 당신이 당신의 그리드를 결합 또는 DataTable을에 데이터 소스 속성을 설정하고 UI 스레드에있을 것입니다 수 있습니다.

이미이 작업을 수행하고 오류가 발생하는 경우 DoWork/threaded 코드 자체에서 처리되지 않은 예외 일 수 있습니다. 그렇다면 RunWorkerAsync 전화를 시도 캐치에 넣고 얻은 것을 확인하십시오.

희망 하시겠습니까?

+0

+1 sadboy. 또한 gui와 동기화하는 것을 잊지 마십시오. – ChrisBD

관련 문제