C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[13635] Re:Re:TFileStream에서..삭제시 오류 (임프님 봐주세요)
문정원 [hhmjw] 883 읽음    2001-12-13 11:55
임프님의 말씀대로 쓰레드를 사용하구요..
소켓을 이용해 파일을 전송받던도중 보내는 쪽에서 소켓을 닫아버린상황이에요..
받던쪽에서 소켓이 닫혔을때 쓰레드를 종료하면서 파일스트림을 삭제하도록 했는데
그 부분에서 오류가 납니다. 크리티컬섹션을 사용해봤는데두 안되네요..

받는쪽..
TFileStream *fs = new TFileStream(...);

while(!Terminated){
   ...

   if(FD_READ 일 경우)
   {
      받아서 fs->Write...
   }

   if(FD_CLOSE)
   {
        Terminate();
   }
}

delete fs;  //이 부분에서 오류가 납니다. (Write중이었나봐요)

꼭좀 해결해주세요..



박지훈.임프 님이 쓰신 글 :
: 좀 이해가 안되는데요...
: TfilerStream의 IO는 블러킹이므로 쓰레드를 쓰지 않는 한은 read/write 중에 다른 이벤트가
: 발생할 수 없는데... 쓰레드를 쓰신다면 뭐 완전히 별개의 문제가 될 것이구요.
:
: 사용중에 삭제하려고 한다는 말씀은 어떤 상황을 말씀하시는 건지...
: 에러를 보셨나요..? 어떤 에러인지 말씀해주시면 한번 찾아보지요.
:
: 그럼...
:
:
: 문정원 님이 쓰신 글 :
: : TFileStream *fs = new TFileStream(...);
: :
: : 해서 파일입출력을 사용중에
: : 어떤 이벤트에로 delete fs를 하려구 하는데요
: : fs를 사용중에 삭제를 할려구하면 에러가 나쟎아요..
: : fs가 사용중이라면 사용이 끝날때까지 어떻게 기다려서 삭제해야 할까요..

+ -

관련 글 리스트
13606 TFileStream에서..삭제시 오류 문정원 726 2001/12/12
13627     Re:TFileStream에서..삭제시 오류 박지훈.임프 810 2001/12/13
13635         Re:Re:TFileStream에서..삭제시 오류 (임프님 봐주세요) 문정원 883 2001/12/13
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.