사용자가 작업을 추가 할 수있는 목록 뷰가있는 양식이 있습니다. 그런 다음 사용자가 버튼을 클릭하면 응용 프로그램이 목록보기의 각 작업을 1 씩 실행합니다.이 상황에서 멀티 스레딩은 어떻게 구현합니까? 가능한가?
이러한 작업은 실제로 작업을 완료하는 지시와 비슷합니다. 각 항목을 통과하는 루프가있는 클래스를 작성한 다음 각 항목 (명령)에 설정 한 작업을 완료하면됩니다. 구문 분석을 시작하려면 해당 함수를 호출하는 폼에 단추가 있어야합니다. IE : RunTask (listview1, 1) - 기본적으로이 클래스는 지정된 목록보기 및 시작 항목이있는 클래스에있는 루프를 시작합니다.
화면 잠금 기능을 제외한 모든 기능이 완벽하므로 응용 프로그램이이 목록보기 항목을 분석하지 못하도록 중지 기능을 구현할 수 없습니다. 나는 크로스 탭없이 이것을 구현할 수있는 방법을 이해하지 못한다. 왜냐하면 나는 분리되어 실행하고자하는 스레드가 항상이리스트 뷰에 접근 할 것이기 때문이다. 목록보기를 제거하기 위해 프로그램을 재 설계하는 것은 타당하지 않습니다. 내가 너무 사람이 버그를 일으켰지 만 application.doevents 했어. 나는이 문제를 해결하는 방법에 대해 수일 동안 연구 해왔다.하지만 나는 생각이 없다. 바라건대 누군가는 약간의 빛을 깡통 깡통.
또한 분명히 checkforillegalcrossthreadcalls = false를 설정해야했지만이 문제를 해결하기 위해 백그라운드 작업자를 추가했습니다.이 작업은 현명한 작업이 아닙니다.
보기에서 데이터를 분리하십시오. 데이터를 저장하기 위해 ListView가 필요하지는 않지만 컬렉션 객체로 설계되지 않았습니다. –
유일한 것은 정보를 listview items 태그에도 저장한다는 것입니다. 또한 일시 중지 단추를 클릭하면 현재 항목이 선택되므로 일시 중지 할 수 있도록 설정되어 있습니다. 그런 다음 재생 버튼이 다시 눌려지면 항목이 선택되어 있는지 확인하고 해당 항목에서 시작하는지 여부를 확인합니다. 또한 Listview를 직접 사용하는 몇 가지 다른 기능이 있습니다. 표준 목록에서는 가능하지 않다고 생각합니다. 귀하의 의견을 보내 주셔서 감사합니다. – user1632018