성태의 닷넷 이야기
홈 주인
모아 놓은 자료
프로그래밍
질문/답변
사용자 관리
사용자
메뉴
아티클
외부 아티클
유용한 코드
온라인 기능
MathJax 입력기
최근 덧글
[정성태] 제가 큰 실수를 했군요. ^^; Delegate를 통한 Bein...
[정성태] Working with Rust Libraries from C#...
[정성태] Detecting blocking calls using asyn...
[정성태] 아쉽게도, 커뮤니티는 아니고 개인 블로그입니다. ^^
[정성태] 질문이 잘 이해가 안 됩니다. 우선, 해당 소스코드에서 ILis...
[양승조
] var대신 dinamic으로 선언해서 해결은 했습니다. 맞는 해...
[양승조
] 또 막혔습니다. ㅠㅠ var list = props[i].Ge...
[양승조
] 아. 감사합니다. 어제는 안됐던것 같은데....정신을 차려야겠네...
[정성태] "props[i].GetValue(props[i])" 코드에서 ...
[정성태] 저렇게 조각 코드 말고, 실제로 재현이 되는 예제 프로젝트를 압...
글쓰기
제목
이름
암호
전자우편
HTML
홈페이지
유형
제니퍼 .NET
닷넷
COM 개체 관련
스크립트
VC++
VS.NET IDE
Windows
Team Foundation Server
디버깅 기술
오류 유형
개발 환경 구성
웹
기타
Linux
Java
DDK
Math
Phone
Graphics
사물인터넷
부모글 보이기/감추기
내용
많이들 경험하셨을 것 같은데요.. 예를 들어, XML 내용에서 노드 따라서 쭉 출력을 해줄 때를 가정해보 면, var xmlNodes = xmlDoc.selectNodes( "test/lists" ); var nLength = xmlNodes.length; var aNode; for ( var i = 0; i < nLength; i ++ ) { aNode = xmlNodes.item(i); divOutput.appendChild( aNode.text ); } 위와 같이 출력을 할때, HTML을 처리하는 IE의 스레드가 단일이기 때문에 divOutput에 변화를 가하더라도 중간중간 나타나는 것이 아 닌 마지막 최후로 작업이 끝난 다음에 화면에 결과가 나타나게 되죠. 만약, 위의 작업이 1000개 2000개 정도 되면 정말 지루할 텐데요. 이런 경우 간단한 Win32 API로 된 COM 메서드를 제작해서 중간중간 에 호출을 해주면 됩니다. 그 메서드는 STDMETHODIMP CTest::RelayEvents(LONG nCount) { MSG msg; while ( nCount > 0 ) { while ( ::PeekMessage( &msg, NULL, 0, 0, PM_REMOVE ) ) { ::TranslateMessage( &msg ); ::DispatchMessage( &msg ); nCount --; } nCount --; } return S_OK; } 위의 COM 메서드를 FOR 루프의 중간중간에 호출을 해주면 됩니다. for ( ... ) { i_message.RelayEvents( 50 ); } 그럼, 기대하던 대로 출력이 이어서 화면에 바로바로 나타나게 됩니다. 한 가지 단점이라면, 해당 COM 객체를 내려받아야 한다는 것인데, 기 존 인증서 첨부된 COM 객체가 있다면 거기에 위의 메서드를 하나 추가 시켜 준후, JScript에서 사용하면 될 것입니다.
첨부파일
스팸 방지용 인증 번호
1451
(왼쪽의 숫자를 입력해야 합니다.)