본문 바로가기

C#

[C#] Thread.Abort시에도 안전한 코드 작성하기



Thread.Abort가 일어나면 작업이 중간에 끊기게 된다,

만약 해당 스레드가 전역적인 상태(위의 예제에서는 g)를 건드리는 코드가 포함되었을 경우에는 상태가 망가져 프로그램 전체가 오작동하게 되는 원인이 될 수 있다.


이를 방지하기 위해서는 빈 try{} 블록을 만들고, 밑에 finally에 코드를 작성하면 항상 다 돌거나, 아예 안돌거나가 보장되는 코드블럭을 작성할 수 있다. (프로세스 종료와 같은 상황 때문에 100%는 아니지만)


Thread.Abort() 자체를 쓰는 일이 적기 때문에 실제로 쓰게 될 일은 없을듯