본문 바로가기

쓰기

지난번에 올린 쓰레드 문제를 가진 녀석입니다.

왜인진 모르겠지만 돌아가지 않습니다 ㄱ-
조회 수 :
14035
등록일 :
2009.01.06
11:09:26
엮인글 :
https://arallab.hided.net/4209/360/trackback
게시글 주소 :
https://arallab.hided.net/board_devtalk/4209

whoami

2009.01.06
18:56:17
찾았습니다.

문제는.. 생성자에서 쓰레드를 생성시킨 것이었습니다.

// AutoLoad.h
class CAutoLoad {
  ...
  public:
  void StartThread();
};

// AutoLoad.cpp
CAutoLoad::CAutoLoad()
{ // 생성자
   g_pLoadThread = NULL;  // 여기서 쓰레드 만들지 말것
   g_bRunning=false;
}

void CAutoLoad::StartThread()
{
  g_pLoadThread = AfxBeginThread(...);
  g_bRunning=true;
  g_pLoadThread->ResumeThread(); // 꼭 SUSPEND 로 만든 뒤 Resume 할 필요는 없지 않을까나..
}

// CustomDic2.cpp
CCustmoDic2::CCustomDic2()
{
  ...

  // 일단 제가 테스트할때는 여기서 생성 않았지만 어차피 CAutoLoad 생성자에서
  // 쓰레드 생성 않으니 그냥 CAutoLoad 클래스를 생성해도 될듯
  m_pAutoLoad = NULL;
}
...
void CCustomDic2::FileClear()
{
  // 아마 가장 처음에 불리는 m_pAutoLoad 관련 메쏘드가 이것인듯.
  if (!m_pAutoLoad)
  {
     m_pAutoLoad = new CAutoLoad; // 일단 쓰레드 생성 확인 방법을 잘 몰라 클래스 생성을 체크하는 방법을 사용.
     m_pAutoLoad->StartThread(); // 쓰레드 생성을 이렇게 따로 해줌
   }
   m_pAutoLoad->FileClear();
}

// 혹은.. 아예 CATPluginApp 에서 CCustomDic2 를 생성시키고 나서 바로 StartThread() 를 부르는
// 방법도 생각해 볼 수 있음.

Hide_D

2009.01.06
20:47:53
감사합니다! 즉시 확인해 볼게요!
List of Articles
번호 제목 글쓴이 조회 수sort 추천 수 날짜 최근 수정일
공지 Talk [필독] 테스트필터 사용시 주의사항 라파에 155439   2008-08-03 2008-12-16 00:03
129 Archive [플러그인, 소스] 사용자 대본 & 사전 플러그인 20080809(테스트버전) [2] file Hide_D 8362   2008-08-09 2008-08-10 00:02
 
128 Talk 컨텍스트 구조 제안(핸들러 구조) [4] Hide_D 8336   2011-04-21 2011-04-23 20:17
가령 모듈 3가지가 DumpText, FixLine, EzTransXP 요렇게 있다고 가정할때 var c0_EzTransXP = new EzTransXP("NoSpace"); var c0_DumpText = new DumpText("KOut,KHex,KHex16"); var c0_FixLine = new FixLine("/ATData/c0.dat"); c0_DumpText.setNext(c0_EzT...  
127 Talk VS 2005로 갈아탔습니다 [1] Hide_D 8272   2008-08-03 2009-01-06 01:34
MFC, 리소스 에디터 때문에 도저히 못 버티다가 옮겼습니다. VS 2008 깔고는 그 느린 속도에 기겁했는데, 이쪽은 꽤 빠르네요. [우홋홋] 근데, 2005와 2008 차이가 뭐죠? 버전 옮길때 그냥 파일 열고 버전 숫자만 바꾸면 땡이네요[...]  
126 Archive [플러그인, 소스] DenyWord 테스트 버전 20080810 file whoami 8164   2008-08-10 2009-01-06 01:26
 
125 Talk 어? ezTransXP 플러그인을 분석하다 생각난건데 [1] Hide_D 8162   2008-07-22 2008-11-22 16:38
이 플러그인에서는 전각 기호는 다른 코드로 치환해 뒀다가 다시 전각 기호로 되돌려주는데, 반각기호는 처리법이 약~간 특이합니다. 1. 원문에 ()<>{}가 없고, 번역문에 ()<>{}가 있으면, ()<>{}와 그 안의 내용을 날립니다. 2. 원문에 ()<>{}가 있고, 번역문...  
124 Talk 개행 처리 관련해서 일단 제 구상입니다 Hide_D 8149   2008-08-21 2009-01-06 01:05
랄까 어느새인가 개행처리가 아니라 텍스트 처리 필터가 되어있습니다만[......] (CmdFilter는 텍스트와 텍스트 바깥을 구분하고, 이건 텍스트 내부를 처리하는 느낌?) 우선 입력 받을 내용은 MaxLine MaxWord (MaxChar?) 개행 기호 문자열(또는 Hex) 그리고 ...  
123 Archive [플러그인, 소스] FixControlCharactor 20080816(테스트버전) [1] file Hide_D 8131   2008-08-16 2009-01-06 02:05
 
122 Archive [플러그인, 소스] FixControlCharactor 20080817(테스트버전) file Hide_D 8126   2008-08-17 2009-01-06 01:01
 
121 Talk DumpText는 아직 개선이 좀 필요한듯; [3] Hide_D 8111   2008-08-03 2009-01-06 01:00
여러개를 켤 수가 없다는 단점이 있네요[...] 그나저나 질문, 헤더 파일에서 extern으로 선언하면 그 프로그램 전체에서 공유되는건가요? 그렇다면, 창은 하나만 띄우고 플러그인 로드될때마다 번호를 매겨서 옵션을 먹여야 하려나요..  
120 Archive [플러그인, 소스] DenyWord 테스트 버전 20080811 file whoami 8097   2008-08-11 2009-01-06 01:05
 
119 Archive [플러그인, 소스] DenyWord 테스트 버전 20080809 [1] file whoami 8067   2008-08-09 2009-01-06 01:26
 
118 Archive [플러그인, 소스] CustomSD 0.3 20080810_2 [1] file Hide_D 8012   2008-08-10 2009-01-06 01:26
 
117 Talk cmd로 리버ex 테스트 [2] file 앙마vv 8011   2008-07-25 2009-01-06 01:27
 
116 Archive [플러그인,소스] 사용자사전 0.3 20080813 (RC) file Hide_D 7965   2008-08-13 2008-08-14 23:24
 
115 Talk 플러그인을 만들다가 '또다시' 엄청난 실수를 저질렀다는걸 깨달았습니다. [2] Hide_D 7929   2008-08-12 2009-01-06 01:01
이쪽은 프로그래밍이라보가는 구상과 관련된 문제네요 ㅠ_ㅠ 현재 제가 손대고 있는 플러그인이 사용자사전 사용자대본 개행문자처리 컨트롤문자처리 인데, 두개씩 묶여있는 구조죠. 그런데... 사용자대본 -> 문장단위처리 사용자사전 -> 단어단위처리 개행문...  
114 Talk whoami님 Util.h의 옵션 파서가 [4] Hide_D 7908   2008-08-10 2008-08-10 15:13
문자열 을 지원하나요? 아니... 으음 c:documents and settindsuser내 문서Game,A루트(미완성).txt 라는 문자열을 파서로 받을 수 있나요?  
113 Talk 0.3에서 추가할것 Hide_D 7908   2008-08-03 2009-01-06 01:00
까먹을까봐 정리 사용자 사전계 1. 사용자사전 유/무 2. 범용사용자사전 유/무 3. 사용자 정의한 주소의 파일 열기(취소) 4. 탭처리 5. 검색 알고리즘 강화(보류) ezTransXP 강화계 1. 번역후 괄호 처리(다이얼로그에 추가)(보류) 2. 사용자 사전과 완벽히 분...  
112 Archive [플러그인] ATCode - OVERWRITE 테스트 버전 20080721 file whoami 7900   2008-07-21 2009-01-06 01:27
 
111 Talk 리얼라이브 세이브에 대해서... [4] 나는누구인감? 7894   2008-08-01 2009-01-06 01:00
오늘 학교에서 하라는 공부는 안하고 곰곰히 생각을 해봤습니다. 세이브 할 경우 현재 위치의 이미지 정보 읽어들임 → 현재 위치의 대사 정보 읽어들임 → 세이브 파일에 저장 로드 할 경우 세이브 파일의 이미지 정보 읽어들임 → 세이브 파일의 대사 정보 읽어...  
110 Talk DumpText를 만들고 있는데... [2] Hide_D 7892   2008-08-02 2008-08-02 12:04
밖에서 모달리스 다이얼로그 안으로 데이터를 넣어주는 간단한 방법 없나요 =ㅅ=; 저 방법이 생각안나서 지금 해보려고 하는게, 실시간으로 바깥의 isTextFilled 를 체크해서 true인 경우만 밖의 텍스트를 가져온 다음에 isTextFilled를 false로 만드는 방법밖...