-1
배경 작업자를 사용하여 시간이 많이 소요되는 프로세스를 실행하고 위의 프로세스가 실행되는 동안 다른 모든 버튼을 비활성화했습니다. 하지만 다른 버튼을 비활성화하려고하면 크로스 스레드 예외가 유효한 오류가 아닙니다. 어떻게 해결할 수 있을까요?프로세스가 C#에서 실행 중일 때 다른 버튼을 비활성화하는 방법은 무엇입니까?
배경 작업자를 사용하여 시간이 많이 소요되는 프로세스를 실행하고 위의 프로세스가 실행되는 동안 다른 모든 버튼을 비활성화했습니다. 하지만 다른 버튼을 비활성화하려고하면 크로스 스레드 예외가 유효한 오류가 아닙니다. 어떻게 해결할 수 있을까요?프로세스가 C#에서 실행 중일 때 다른 버튼을 비활성화하는 방법은 무엇입니까?
배경 작업자를 시작하기 전에 단추를 비활성화하십시오.
DisableButton(); // runs on UI thread
backgroundWorker.RunWorkerAsync();
다음 버튼을 활성화 RunWorkerCompleted 이벤트 핸들러를 사용
void backgroundWorker_RunWorkerCompleted(object s, RunWorkerCompletedEventArgs e)
{
EnableButtons(); // runs on UI thread
}
당신은 Windows를 실행하는이 응용 프로그램 또는 WPF 응용 프로그램을 형성? – hcb
검색 엔진에서 예외를 붙여 넣고'(Begin) Invoke()'를 살펴 보았습니까? WPF : Dispatcher.BeginInvoke가 찾고있는 경우 [크로스 스레드 UI 구성 요소 호출] (http://stackoverflow.com/questions/1395167/cross-thread-ui-component-call) – CodeCaster
의 가능한 복제본입니다. 어쨌든, 왜 지구에서 BkgdWkr을 사용하고 있습니까? –