이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 16327|회답: 5

[윈폼] 백그라운드 스레드가 프레임 웹페이지를 작동하는 방식

[링크 복사]
게시됨 2019. 1. 22. 오후 9:43:08 | | |
우선, UI 스레드로 다음 문장을 실행하면 문제가 없습니다
        private void button9_Click_1(object sender, EventArgs e)
        {
            MSHTML. HTMLDocument doc = GetIe("URL"); GetIe는 지정된 URL에서 IE 문서를 얻는 방법이며;
            doc.frames.item(0).document.all.item("txtLimits").innerText = "123";
        }
하지만 백그라운드 스레드에 넣으면 InvalidCastException이라는 예외가 발생합니다. 지정된 변환이 유효하지 않고, 코드는 다음과 같습니다
   private async void button9_Click_1(object sender, EventArgs e)
        {
            Action action = 새로운 Action(test12);
            Waitit Task.Run(액션);
        }
        개인 공허 테스트12()
        {
            MSHTML. HTMLDocument doc = GetIe("URL");
            doc.frames.item(0).document.all.item("txtLimits").innerText = "123";
        }

。。。 올바른 글을 어떻게 쓰나요?




이전의:오늘의 C# 학습 노트
다음:"센란 카구라 버스트: 리뉴얼" 중국어와 영어 무료 버전
게시됨 2019. 1. 23. 오전 8:03:26 |
게시됨 2019. 1. 23. 오전 9:08:36 |

점수

참가자 수1MB+1 기여하다+1 무너지다 이유
크리스탈0330 + 1 + 1 정말 강력해!

모든 평점 보기

 집주인| 게시됨 2019. 1. 23. 오후 10:04:56 |

정말 감사합니다. 문제는 해결됐어요. 다만 저는 비동기 초보라 왜 이렇게 쓰였는지 이해가 안 돼요. 설명해주시면 더 완벽할 것 같아요.
 집주인| 게시됨 2019. 1. 24. 오전 6:38:37 |
이 글은 crystal0330이 2019-1-24 06:55에 마지막으로 편집했습니다

안녕하세요, 저도 앞으로 문제를 겪었습니다:



ClickYes는 팝업 창에서 마우스를 OK 버튼으로 이동시키고 두 번 클릭할 수 있는 방법입니다



이제 두 가지 문제가 생겼습니다:
1. 이렇게 써라,ClickYes는 단지마우스의 두 번째 클릭, 즉 첫 번째 클릭은 실행되지 않으며, UI 스레드에 있다면 두 번 클릭할 수 있습니다;
2. ClickYes 메서드에서 브레이크포인트에 도달했고, 프로그램이 중단된 후 다시 F11을 눌렀으며, ClickYes의 다음 코드를 실행하지 않았습니다. 그렇다면 어떻게 단계별로 디버깅할까요?

 집주인| 게시됨 2019. 1. 24. 오후 2:33:03 |

안녕하세요, 방금 다시 시도해봤는데, 이렇게 쓰면 Winform 인터페이스가 다시 멈춰버려요. UI 스레드를 직접 사용할 때와 같은 현상이에요...
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com