Thread.Abort가 일어나면 작업이 중간에 끊기게 된다,
만약 해당 스레드가 전역적인 상태(위의 예제에서는 g)를 건드리는 코드가 포함되었을 경우에는 상태가 망가져 프로그램 전체가 오작동하게 되는 원인이 될 수 있다.
이를 방지하기 위해서는 빈 try{} 블록을 만들고, 밑에 finally에 코드를 작성하면 항상 다 돌거나, 아예 안돌거나가 보장되는 코드블럭을 작성할 수 있다. (프로세스 종료와 같은 상황 때문에 100%는 아니지만)
Thread.Abort() 자체를 쓰는 일이 적기 때문에 실제로 쓰게 될 일은 없을듯
'C#' 카테고리의 다른 글
[C#] Mono 환경인지 구분하기 (0) | 2016.06.21 |
---|---|
[NUnit] Callback 방식의 API 테스트하기 (1) | 2016.06.16 |
[C# 7.0] 패턴 매칭, 디컴포지션 (0) | 2016.06.01 |
[C#] 슬랙(Slack) 봇 만들기 (8) | 2016.05.26 |
PubSub 기반의 게임 프로그래밍 (0) | 2016.04.08 |