에디터 스크립트 기능을 사용중 스레드가 중단되었다는 에러가 뜹니다
페이지 정보
본문
[오른쪽판단용.ngs] 스크립트가 시작되었습니다.
[연결] 액션이 시작되었습니다.
[COM5] 시리얼 포트에 연결되었습니다.
[키 업] 액션이 시작되었습니다.
[키 코드] LEFT
[끊기] 액션이 시작되었습니다.
[COM5] 연결이 해제 되었습니다.
[지연] 액션이 시작되었습니다.
[스크립트 중지[오른쪽으로 공격]] 액션이 시작되었습니다.
[오른쪽으로 공격] 스크립트는 실행중이 아닙니다. 스크립트를 중지할 수 없습니다.
스크립트 경로: 오른쪽으로 공격.ngs
[지연] 액션이 시작되었습니다.
[스크립트 실행[왼쪽으로 공격]] 액션이 시작되었습니다.
[왼쪽으로 공격.ngs] 스크립트가 시작되었습니다.
스크립트 경로: 왼쪽으로 공격.ngs
[왼쪽으로 공격.ngs] 스크립트가 중지되었습니다.
Error
======================================================
스레드가 중단되었습니다.
------------------------------------------------------------------------
[오른쪽판단용.ngs] 스크립트가 완료되었습니다.
[오른쪽판단용.ngs] 스크립트가 시작되었습니다.
[연결] 액션이 시작되었습니다.
[COM5] 시리얼 포트에 연결되었습니다.
[키 업] 액션이 시작되었습니다.
[키 코드] LEFT
[끊기] 액션이 시작되었습니다.
[COM5] 연결이 해제 되었습니다.
[지연] 액션이 시작되었습니다.
[스크립트 중지[오른쪽으로 공격]] 액션이 시작되었습니다.
[오른쪽으로 공격] 스크립트는 실행중이 아닙니다. 스크립트를 중지할 수 없습니다.
스크립트 경로: 오른쪽으로 공격.ngs
[지연] 액션이 시작되었습니다.
[스크립트 실행[왼쪽으로 공격]] 액션이 시작되었습니다.
스크립트 경로: 왼쪽으로 공격.ngs
[오른쪽판단용.ngs] 스크립트가 완료되었습니다.
[왼쪽으로 공격.ngs] 스크립트가 시작되었습니다.
[COM5] 시리얼 포트에 연결되었습니다.
[키 코드] LEFT
[키 코드] LEFT
[키 코드] LEFT
[왼쪽으로 공격.ngs] 스크립트가 완료되었습니다.
- 이전글NGM Editor 5 - Free Version 사용회원 입니다. 마우스에 대해서. 궁금합니다 20.03.29
- 다음글간단한거 이미지매치+ 변수 + 동작 질문입니다. 20.03.29
댓글목록
엔지엠소프트웨어님의 댓글
엔지엠소프트웨어 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 작성일 Date
표시를 에러라고 하고 있지만... 사실은 강제 종료가 되면서 윈도우에 에러 코드를 넣도록 내부적으로 구현되어 있습니다.
윈도우 시스템상 실행중인 스레드를 종료하려면 해당 스레드가 작업을 완료할때까지 기다려야합니다^^;
하지만, 스레드가 오랬동안 계속 종료하지 못하고 실행되고 있으면 일반적으로 말하는 응답 없음 상태에 빠지게 됩니다.
이는 마이크로소프트가 안전한 스레딩 기술을 구현하기 위해 의도한 디자인입니다.
하지만, 매크로 특성상 어떤 작업이 언제 어떻게 종료될지... 아무도 모르면 스크립트를 에측해서 작성하기가 상당히 까다로워집니다.
원하는 시점에 서브 스크립트나 타이머, 스케줄러들이 종료되어야 함에도 불구하고 몇초 또는 몇분 지속되면서 클릭하거나 키보드 입력을 하면 안돼기 때문입니다.
개발자들 사이에서도 멀티 스레딩 기술은 최고 난이도의 기술입니다. 대부분은 멀티 스레딩을 개발할때 사용조차 안합니다.
원론적으로 멀티 스레딩 환경에서 비정상 종료되면, 해당 스레드가 사용하는 메모리가 해제되지 않거나 행 또는 락으로 인해 여러가지 문제를 야기시킵니다.
그래서, 윈도우에게 스레드를 강제로 종료한다고 알리고 비정상 종료 이벤트를 받아서 해당 스레드에서 생성한 메모리를 순차적으로 릴리즈 시킵니다.
즉시 종료하기 위한 방법을 택한것일뿐입니다. 참고로, 정상 종료되고 메모리가 릴리즈되면 에러라는 메시지를 표시하지 않습니다.
즉시 종료할 수 없는 상황이라면 강제로 종료하고 윈도우에게 에러 코드를 던져주는 루틴이기 때문에 표시되는 메시지일뿐입니다.