게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
C# 백그라운드워커와 invoke에 대한 질문이있습니다.
게시물ID : programmer_2450짧은주소 복사하기
작성자 : LustTomato
추천 : 0
조회수 : 3740회
댓글수 : 5개
등록시간 : 2014/04/07 20:56:15
오늘 하루종일 박터지게 짜봐도 결과가 안나오네요

사정상 모바일이라 설명이 충분치 않을지도 모르겠습니다

윈폼기반어플리케이션입니다

일단 화면과 컨트롤 그리고 이벤트가 정의된
부모폼 a가 있습니다.여기에 gif이미지와 백그라운드워커가
정의되어 있습니다
그리고 조회버튼 클릭 이벤트함수도 정의되어 있습니다

그리고 a를 상속받는 b c d가 있습니다
여긴 특별한거 없이 컨드롤 내용만 좀 바꿉니다

그리고 b c d 들을 상속받는 f가 수백개가 있습니다

f에는 각 컨트롤에 값을 넣어주고 그 값들로쿼리를 만들어서
던지는 함수와 그리드에 바인딩하는 함수가 있습니다
f의 위에서 말한 쿼리를 던지는 함수는 a부터 상속받은
이벤트함수를 오버라이딩한 함수입니다

제가 요구받은것은 이 각 f페이지마다 조회가 비동기식으로 가능하게 하는것입니다

단순히 f를 수정하면 쉽겠지만
그러면 수백페이지를 수정해야하는 상황이라 가능한한
A를 수정해야할것 같습니다

조건은 조회중 gif이미지가 정상적으로 움직여야한다
조회는 비동기식으로 되어야한다입니다

제가 구현해본 방법은

A에서 이미지 선언 
클릭이벤트시 백그라운드워커를 호출하는 함수
백그라운드워커를 호출하는 함수상에서 이미지 활성화후
백그라운드워커의 dowork함수 호출
Dowork함수상에서 f의 조회함수호출(invoke)
이런식으로 구현했으며 위 내용은 전부a상의 내용입니다
다른 폼은 수정하지 않았습니다

이렇게 구현하고 실행하면
이미지가 뜨고 조회가 되는건 정상적으로 동작하나
이미지는 움직이지 않고 조회또한 비동기로 되지 않습니다
조회동안 컨트롤들이 먹통이됩니다



질문이 너무 부실한데
요약하면

상속받은 자식폼이 조회를 할때 부보폼상의 백그라운드워커가 
자식폼의 함수를 호출하면 크로스쓰래드 오류가 나니까
invoke를 하는데
이때 invoke를 하면 실제 화면상에서는 비동기가 아닌 동기화방식의
조회가 됩니다

이때 비동기화가 가능한 방식의 invoke사용법이 있는지
아니면 구성자체가 잘못된건지 궁금합니다


음......모바일이라 장문쓰기도 자세히 쓰기도 힘들군요
무슨 소리인지 잘 모르시겠지만
막연한 개념이나 방법론 같은거라도 생각나시는 분이 있다면 부탁드립니다

전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호