나는 현재 데이터로리스트 뷰를 채우는 함수를 가지고있다. 이 함수는 전달 된 매개 변수를 가져옵니다.매개 변수를 백그라운드 작업자에게 전달하려면 어떻게해야합니까?
이제 주 UI 스레드와 다른 스레드에서 listview를 채우고 싶습니다. 그러나 나는 스레드에 매개 변수를 전달하는 방법을 조금 확실하지 않습니다.
나는 현재 데이터로리스트 뷰를 채우는 함수를 가지고있다. 이 함수는 전달 된 매개 변수를 가져옵니다.매개 변수를 백그라운드 작업자에게 전달하려면 어떻게해야합니까?
이제 주 UI 스레드와 다른 스레드에서 listview를 채우고 싶습니다. 그러나 나는 스레드에 매개 변수를 전달하는 방법을 조금 확실하지 않습니다.
RunWorkAsync를 통해 매개 변수 (개체)로 전달되어야합니다.
위에서 한스가 말한 것처럼 다른 스레드에서 ListView를 채울 수는 없지만. 이것은 "배경 작업자에게 매개 변수를 전달하는 방법"입니다.
그리고 UI 스레드가 아닌 스레드에서 UI 작업 (MessageBox)을하고 있기 때문에 코드에서 크로스 스레드 오류가 발생할 가능성이 높습니다. –
아, 그래. 고맙습니다. 예를 들어 설명해 보았습니다. – Keith
다른 스레드에서 ListView를 채울 수 없습니다. –
만약 listview를 채울 수 없다면, 어떻게 함수를 배경 작업자로 바꿀 수 있을까요? – Mattigins
작업자 스레드의 목록보기에 표시 할 데이터를 수집하십시오. 목록보기를 바인딩하거나 채우는 작업은 RunWorkerCompleted 이벤트 처리기에서 수행해야합니다. 너무 오래 걸리면 UI가 크게 파괴되어 수천 개의 항목이있는 목록을 표시하는 것이 지나치게 사용자에게 적대적입니다. –