C# 타이머종류 및 주의점 안내

C#으로 예약관련 기능을 추가하고 있는 중에 재밌는 현상이 하나 생겼습니다. 예약시간이 되면 특정 기능을 호출하고 종료하는 그런 예약 싸이클인데요. 문제가 생긴다고 해서 소스를 살펴보았더니 재밌는 현상이 발견되었습니다.

 

예약으로 쓰고 있는 timer에서 실행 쓰레드를 호출하는게 그 쓰레드가 종료가 안되는 문제 였습니다. 객체를 이미 사용하고 있어서 1번 실행되고 난 뒤에는 2번째 작업을 할때 문제가 생기더군요.

 

 

2017/10/19 - [IT정보/환경설정] - 크롬 확장프로그램 삭제 방법 안내

2017/10/16 - [IT정보/C#] - c# DLL 포함 exe 빌드하기

2017/10/12 - [IT정보/C#] - c# 외부아이피 가져오기

2017/08/27 - [TIPS/윈도우8] - xinput1_3.dll 오류해결 어렵지 않죠ㅎㅎ

 

C# 타이머종류 및 방법 안내

이것저것 포스팅을 찾다가 좋은 글이 있어서 가져왔습니다. 소년포비님께서 정리를 잘하주셨더군요.

 

 

쓰레드라는게 참 어려운데 잘 정리를 해주셔서 이해가 좀 더 쉬웠습니다. 제가 사용하는 timer의 경우 기본 System.Windows.Forms.Timer 였는데요. 이 timer 의 경우 제가 사용하는 방법과는 조금 다른 양상을 보입니다.

 

 

 

 

타이머가 돌면서 특정기능을 호출하고 중간에 사용자가 정지를 하였을 경우 호출한 쓰레드 자체를 멈출수가 없는 부분인데요. 이건 제어가 따로 안되더라구요.

 

쓰레드의 호출방식이 독립적으로 수행이 되기에 혹시라도 이걸로 몇분마다 특정 동작을 하게 하고, 중간에 사용자의 개입이 필요한 경우는 사용을 안하시는게 좋을듯 합니다.

 

자세한 내용은 위의 참조 블로그를 살펴보세요^^

 

제가 내공이 좀 있어서 여러분들께 설명을 해드리면 좋은데, 저도 이제 막 C#을 배우고 있는단계라 깊이가 많이 부족합니다. 최근들어 특히 어렵게 느껴지는게 쓰레드 부분인데요. 실행되고 있는 쓰레드를 제어하고 원하는데로 값을 변경하는게 생각보다 많이 어렵더군요. 특히 타 폼과의 연계부분은 머리가 터질듯이 어렵습니다ㅎㅎ

 

그래도 개발자라 어떻게든 진행이 되어서 이제 결과물이 좀 보이고 있습니다. 시간이 좀 남아서 티스토리 백업 프로그램을 만들었는데 완성이 빨리 되었으면 좋겠네요. 어떤 블로그는 잘되다가 또 다른건 안되고.. 역시 프로그램은 어렵네요.