홈>
단순한
BackgroundWorker
가 있습니다
결과를 생성해야하지만 호출 메소드로 다시 가져 오는 방법을 모르겠습니다.
나는 많은 답변을 읽었으며 모두
RunWorkerCompleted
가 어떻게
이벤트는
DoWork
의 결과를 수신 할 수 있습니다
이를 증명하기 위해 결과와 함께 메시지 상자를 표시합니다. 그것은 모두 좋지만
RunWorkerAsync
라는 실제 방법으로 어떻게 결과를 얻습니까?
?
myResult=myBackGroundWorker.RunWorkerAsync(); // This obviously doesn't compile
이 답변은 특히 매우 유용했습니다 :
BackgroundWorker가 객체를 반환하도록하는 방법
하지만 여전히 결과에 액세스하는 방법을 모르겠습니다. 이 답변에는 대리인의 사용에 대해서도 언급되어 있습니다.
BackgroundWorker가 값을 반환합니까?
그러나 이것이 문제를 해결할 수 있는지, 아니면 여전히 RunWorkCompleted 이벤트 핸들러 내에서 결과를 얻을 수 있는지 이해가되지 않습니다.
- 답변 # 1
관련 자료
- sql server - c #의 저장 프로 시저에서 반환 값 가져 오기
- javascript - 반응 함수 구성 요소의 끝에서 값을 반환 할 것으로 예상되는 linter를 수정하는 방법은 무엇입니까?
- Javascript Regex의 시퀀스에서 일치하는 값을 반환하는 방법
- parsing - 목록 반환 값을 값을 대체 할 수있는 sympy 표현식으로 구문 분석하는 방법은 무엇입니까?
- java - 봄 부팅에서 yaml에서 속성 목록의 null 값 가져 오기
- javascript - 부울 값 배열 대신 부울 값 1 개를 반환하는 매핑 함수
- PHP에서 Python 프로그램을 실행하고 HTML 내에서 반환 값을 사용하는 방법은 무엇입니까?
- semantics - Ruby setter가 인스턴스 변수의 최종 값이 아닌 전달 된 값을 반환하는 이유는 무엇입니까?
- java - 다른 값으로 Enum 값 얻기
- laravel - 함수 내에서 "column" - "value"의 키 쌍 대신 쿼리 값만 반환합니다
- java - Android에서 GSON을 통해 중첩 된 JSON 배열에서 값을 얻습니까?
- javascript - 약속 값을 반환하는 방법 JS
- java - toString의 값을 반환
- python - sklearn MinMaxScaler ()가 오류 대신 범위를 벗어난 값을 반환하는 이유는 무엇입니까?
- list - 왜 pop () 함수가 파이썬의 함수 내부에서 값을 반환하지 않습니까?
- swift - JSON을 사용하여 API에서 값을 반환하려고합니다
- javascript - 배열의 값에서 특정 문자 얻기
- python - 중첩 된 사전 액세스 및 값 반환
- javascript - 추가 된 Google API 키가 여전히 오류 API 키를 찾을 수 없음
- winapi - 주어진 Windows 메시지 식별자의 숫자 값 가져 오기
트렌드
- OpenCv의 폴더에서 여러 이미지 읽기 (python)
- 파이썬 셀레늄 모든 "href"속성 가져 오기
- html - 자바 스크립트 - 클릭 후 변경 버튼 텍스트 변경
- git commit - 자식 - 로컬 커밋 된 파일에 대한 변경을 취소하는 방법
- javascript - 현재 URL에서 특정 div 만 새로 고침/새로 고침
- JSP에 대한 클래스를 컴파일 할 수 없습니다
- jquery - JavaScript로 현재 세션 값을 얻으시겠습니까?
- JavaScript 변수를 HTML div에 '출력'하는 방법
- javascript - swiperjs에서 정지, 재생 버튼 추가
- python - 문자열에서 특정 문자 제거
짧은 대답 : 할 수 없습니다.
<시간>RunWorkerAsync
를 호출 한 메소드에 값을 돌려주는 것이 무엇을 의미하는지 생각해보십시오 . 이는 메소드가 실행을 일시 정지하고 백그라운드 작업자가 작업을 완료 할 때까지 기다렸다가 다시 계속해야 함을 의미합니다. 그러나 대기하는 동안 다른 방법을 계속 실행하려면 UI가 중지됩니다.그 소리가 당신에게 친숙한가요? 그것은 기본적으로 무엇
async
입니다await
를 만나면 메소드가 수행 표현!BackgroundWorker
꽤 오래된 API이며 async/await가 나왔을 때 멋진 기능이 없었습니다 (async/await는언어기능입니다). 이벤트를 사용하여 트릭을 수행하는 이유입니다. . 당시에는 비동기식으로 작업을 수행하고 호출자에게 값을 우아하게 되돌릴 방법이 없었습니다.이제 async/await가 있으므로이를 사용하여 원하는 작업을 수행 할 수 있습니다.
비동기/대기에 대해 전혀 들어 본 적이 없다면 시작하기에 좋은 곳입니다.