저는 .NET 2.0 WinForms 응용 프로그램을 개발 중입니다. 이전에 표준 Microsoft ActiveX WebBrowser 컨트롤이 포함되었지만 대안을 조사하고 있습니다..NET WebBrowser 컨트롤의 대안은 무엇입니까?
내가해야 할 일은 :
사용
컨트롤을 만들고, 너무 - 예를 들어 배경에서 사용 할 수 있어야 응용 프로그램의 표준 웹 브라우저 컨트롤과 웹 브라우저, 양식에 첨부 된 컨트롤없이 웹 페이지를 렌더링하고 결과를 이미지에 출력합니다 (.DrawToBitmap 사용).
주로 라이프 사이클의 다양한 이벤트에 연결합니다. 주로 DocumentCompleted입니다.
컨트롤의 새 인스턴스를 통해 또는 기존 컨트롤을 사용하여 30 초마다 웹 페이지를로드 (또는 다시로드) 할 수 있습니다. 응용 프로그램은 길고 비 한정 기간 동안 계속 실행될 수 있습니다.
.NET 2.0에서 작동해야합니다. 아니 3.0 + 또는 WPF 물건.
마이크로 소프트 액티브 웹 브라우저 - 만드는 거대한 메모리 누수가 있습니다
유일하게 세 개의 컨트롤은 지금까지 모두 앞으로 나를 방지 오히려 중요한 문제를 찾을 수있었습니다 그것은 오랜 시간 동안 실행하기에는 부적합합니다.
WebKit.NET - 지금까지 내가 만들었던 것은 모든 렌더링이 완료되기 전에 양식에 첨부되어야하므로 축소판 생성 조각에 쓸모가 없습니다. 또한 메모리 누수로 고통받는 것 같습니다.
GeckoFX - 나에게 가장 적합하지만 스레딩을 제대로 지원하지 않습니다 (이는 미리보기 이미지 생성 부분에서 중요합니다).
다른 대안이 있습니까?
"제대로 스레딩을 지원하지 않음"이란 의미는 무엇입니까? 몇 가지 해결 방법을 만들 수 있습니다. – Andrey
GeckoFX에서 한 번만 호출 할 수있는 Xpcom.Initialize 호출이 있습니다. 일단 내가 GeckoWebBrowser 컨트롤이 다른 스레드에서 GeckoWebBrowser를 사용하여 COM 오류가 발생하면 해당 스레드에 바인딩되는 스레드에서 해당 메서드를 호출하면 수집 할 수 있었던 것부터 확인할 수 있습니다. – MisterZimbu
을 사용하면 GeckoFX를 캡슐화 할 프로세스를 생성 할 수 있습니다. – Andrey