나는 wxTextCtrl을 가지고 있으며 매우 큰 문자열을 넣어야합니다. (15 MB 문자열처럼) 유일한 문제는 매우 느립니다. 내가하는 일은 다음과 같습니다.wxTextCtrl의 텍스트 표시 속도가 느린 이유는 무엇입니까?
char * buff = ...
wxString data(buff, wxConvUTF8);
text->ChangeValue(data);
그러나 이것은 병목 현상이 아닙니다. 이 코드 블록이 반환되는 즉시 발생합니다. 전체 앱이 약 30 초 동안 정지합니다. 나는 ChangeValue 직후에 wxYield를 시도했는데 그 문자열의 처음 몇 줄이 컨트롤에 표시되지만 그 후에도 여전히 멈 춥니 다. 어떻게 이것을 피할 수 있습니까?
ChangeValue가 거의 즉시 반환한다는 점을 강조해야합니다. 지연은 아마도 wxTextCtrl의 내부 메시지 처리기 또는 그 이후에 발생합니다.
wxTextCtrl이 15 메가 비트 문자열 (대략 전체 프로그래밍 도서의 크기)을 채우는 것을 예상하지 못했던 것처럼 들립니다. –
서버 로그를 열었습니다. –
페이징 메커니즘을 구현하고 한 번에 전체 텍스트의 작은 창만로드 할 수 있습니다. 이 접근법은 거의 즉각적이어야합니다. 그래도 wxWidgets에 대한 전문 지식이 충분하지 않아서 어떻게하는지 알려주지 않습니다. –