Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
Tags
- string 한계
- 토이 프로젝트
- 파이썬
- 기상청 api
- 캐드 꿀팁
- 리눅스
- C#
- maria db
- EFECS
- 날씨 프로그램
- mysql
- 마리아 db
- string 초기화
- 할일이 많다
- PYTHON
- toy_project
- string길이
- todolist 응용어플리케이션
- 스마트팜
- 라즈베리파이
- 센서
- 근태 자동
- 설계
- 토이프로젝트
- tcp클라이언트
- 한글 표시 안됨
- 집 제어
- todolist앱
- 날씨 및 온도 제어
- 지각하면 안됨
Archives
- Today
- Total
경험을 통해서
스레드 간섭 간 생긴 일 1편 본문
요즘 진행 중인 프로젝트는
자이로 센서를 이용한 모터 오작동 감지
센서의 개수가 32개!!
..... 그럼 소켓을 총 32 채널을 열어야 한다는 말이다...
또 Tcp 통신을 사용하다 보면 Reconnection이 매우 중요하다..
고민하다 고민 하다 Dictionary와 Tuple을 같이 사용하려고 했는데.....
(여기서 문제임...)
... 위에 보면 tuple의 타입 개수는 총 3개 - 연결 상태와 채널의 번호, 그리고 해당 Tcpclient 소켓을 받아서
저장해서 사용하는 중이었는데..
Timer를 사용하여 연결 상태 값을 조회하여 false 전환 시에 Reconnection try 문을 작성하는 중이었는데.. 문제가 생겼다...
문제는 타이머와 connection Task와의 혼선...
타이머는 system.Timers.timer를 사용하다 보니...
스레드 타이머의 특징은 폼의 스레드(메인 스레드)와 상관 없이 worker thread에서
동작을 하다보니 비동기 연결 통신을 동작을 하게 되면 tuple의 값이 변화하면서
값 변화때문에 문제가 생기게 된다.
비동기 어려움.... 많이...
foreach문이 돌면서 value 값을 찾는 데 바뀌니까 오류로 바뀌는 현상이....

깨달은.. 거..
실시간 바뀌는 값들은 절대 value 값으로 두지 마라..
누가 그런 말을 했었는데... 너무 간과 했...
'Coding Diary > C,C++,C#' 카테고리의 다른 글
MQTT를 너무 믿은 점.. (오류 편) (0) | 2024.09.18 |
---|---|
Thread 파라미터 전달하기(왜 이걸 이제 알았을까...) (0) | 2024.08.29 |
[C#] 클라이언트 재연결 및 수신 프로그램 만들기 (2) | 2023.06.16 |
TCP 통신의 패킷 처리하기(클라이언트 편) (0) | 2023.05.20 |
Thread 작성 시 고려 사항 및 오류 사항 : 스레드가 실행 중이거나 종료되었습니다. 다시 시작할 수 없습니다. (0) | 2023.05.20 |