윈도우 작업 양식 대화 상자가 있습니다. 여기서는 백그라운드 작업자 작업 내에서 더 긴 작업이 실행되고 있습니다 (비동기). 이 작업 중에 양식 (레이블, ...)의 일부 값을 변경하려고합니다. 그러나 backgroundworker가 양식에서 뭔가를 변경하려고하면 "크로스 스레드 작업이 유효하지 않습니다."오류가 발생합니다! 이 문제를 어떻게 해결할 수 있습니까?"크로스 스레드 작업이 유효하지 않습니다"라는 문제를 해결하는 방법은 무엇입니까?
1
A
답변
3
를 호출 ReportProgress
작업자의 방법 및 현재 상태를 업데이트 할 ProgressChanged
을 처리합니다.
2
호출이 필요한지 확인한 다음 BeginInvoke를 호출하십시오.
private void AdjustControls()
{
if (this.InvokeRequired)
{
this.Invoke(new MethodInvoker(this.AdjustControls));
}
else
{
label1.Text = "Whatever";
}
}
1
나는 내 자신의 경적을 여기에서 조금 이상하게 여기지만, 정확하게 목적을 위해 쓴 ThreadSafeControls 라이브러리에서 약간의 용도를 발견 할 수 있습니다.
1
컨트롤을 만들지 않은 스레드에서 컨트롤을 직접 변경할 수 없습니다. 위에 나와있는 것처럼 invoke 메서드를 사용하거나 BackgroundWorker ProgressChanged 이벤트를 사용할 수 있습니다. BackgroundWorker에 ProgressChanged 내부
myBackgroundWorker.ReportProgress(50); // Report that the background worker has got to 50% of completing its operations.
코드를 사용 :
경우 BackgroundWorker DoWork 내에서 사용되는 코드
progressBar1.Value = e.ProgressPercentage; // Change a progressbar on the WinForm
관련 문제
- 1. 크로스 스레드 작업이 유효하지
- 2. VB.NET 크로스 스레드 작업이 유효하지
- 3. 크로스 스레드 작업이 유효하지 않습니다. VB.NET
- 4. 크로스 스레드 작업 유효하지
- 5. 크로스 스레드 작업을 해결하는 방법
- 6. '크로스 스레드 작업이 유효하지 않음'은 WinForms 응용 프로그램을 죽이지 않습니다.
- 7. InvokeRequired를 사용하는 경우에도 크로스 스레드 작업이 유효하지 않습니다.
- 8. 웹 양식에 대한 크로스 스레드 작업이 유효하지 않음 (호출 필요)
- 9. 크로스 스레딩 작업이 유효하지 않습니다 ... - VB.NET
- 10. 얻기 크로스 스레드 작업 유효하지
- 11. Firefox 2.0 크로스 브라우저 문제를 해결하는 방법은 무엇입니까?
- 12. 얻기 크로스 스레드 작업 유효하지 MDIParent
- 13. GC_concurrent 문제를 해결하는 방법은 무엇입니까?
- 14. 방향 문제를 해결하는 방법은 무엇입니까?
- 15. 목록으로이 문제를 해결하는 방법은 무엇입니까?
- 16. 크로스 스레드 작업이 유효하지 않음 : 'listBox2'컨트롤이 작성된 스레드가 아닌 스레드에서 액세스
- 17. iGoogle 가제트 문제를 해결하는 방법은 무엇입니까?
- 18. 메모리 누수 문제를 해결하는 방법은 무엇입니까?
- 19. 설탕 crm에서 마이그레이션 문제를 해결하는 방법은 무엇입니까?
- 20. 이 문제를 해결하는 반복기를 만드는 방법은 무엇입니까?
- 21. JSP 태그 확장으로이 문제를 해결하는 방법은 무엇입니까?
- 22. 이 회전 문제를 해결하는 방법은 무엇입니까?
- 23. 자바에서 다음 문제를 해결하는 방법은 무엇입니까?
- 24. Makefile에서이 연결 문제를 해결하는 방법은 무엇입니까?
- 25. 이 bad_alloc 문제를 해결하는 방법은 무엇입니까?
- 26. CFRuntimeCreateInstance 객체 누출 문제를 해결하는 방법은 무엇입니까?
- 27. 파워 컷 페이팔 문제를 해결하는 방법은 무엇입니까?
- 28. 스프라이트의 애니메이션에서 지연 문제를 해결하는 방법은 무엇입니까?
- 29. Tabbed MDIChild Forms에서이 문제를 해결하는 방법은 무엇입니까?
- 30. A/B 키 문제를 해결하는 방법은 무엇입니까?
이 여기에 설명되어 있습니다 : http://msdn.microsoft.com/en- us/library/ms993020 –
여기서 시작하는 것이 더 좋습니다 : http://msdn.microsoft.com/en-us/library/ms951089 시리즈 시작 부분! –