Program35 [C# WPF] MultiThread 환경에서 로그 작성하기 / Log 누락 방지하기 / ReaderWriterLock과 ReaderWriterLockSlim 차이점 [ReaderWriterLock 개요]개발을 진행하다 보면 좋든 싫든 Thread를 사용하게 됩니다. 모든 작업에 병렬처리는 기본적으로 탑재되어 있는 기능이라 보는 수준이 되었기 때문입니다. 현재 PC의 하드웨어 사양도 그에 맞게 멀티스레드 멀티코어를 지양합니다. 유치원 문제를 해결하는 데 있어서 고등학생 1명과 중학생 10명에게 문제를 배분하고 해결하는 데 걸리는 시간을 측정하는 것과 같지요. 이에 따라 Task나 Thread 등을 사용하여 동시에 업무를 처리하곤 하는데 이에 따라 발생되는 문제점을 일일이 분석하기에는 어려움이 있습니다. 그래서 한 개의 문서에 모든 일꾼의 업무를 시간순으로 나열하고 싶을 때 사용되는 방법입니다. 일반적으로 다양한 일꾼들에게서 나오는 시스템메시지를 각각의 Thread 각.. 2025. 4. 2. [C# WPF] Scroll DragMove 기능 추가하기 / ScrollViewer 드래그 스크롤 / Control 동적 할당 [컨트롤 할당 이후 작업]오늘은 동적 컨트롤 할당 이후에 컨트롤을 스크롤하는 방법에 대해 포스팅합니다. 지난 포스팅에서 StackPanel에 동적으로 컨트롤을 추가하는 방법을 소개했는데요. 화면에서 벗어나는 수준의 많은 컨트롤이 할당된 경우 아래쪽으로 화면을 이동시키는 방식은 다양하지만 가장 간단한 방법은 ScrollViewer를 활용하는 것입니다. 그런데 할당된 많은 개수의 컨트롤을 옆의 작은 스크롤을 클릭해서 옮기기란 쉽지 않습니다. 화면 해상도가 낮아질수록 스크롤의 크기도 작아지고 터치스크린을 사용하는 경우 클릭이 어렵기 때문입니다. 이미 보편적으로 핸드폰에서 사용하는 방법처럼 드래그해서 화면을 옮기고 싶을 때 사용되는 방법입니다.응용하면 다양한 분야에서 활용이 가능합니다.위 영상처럼 컨트롤이 많을.. 2025. 3. 19. [C# WPF] Button Control 동적 할당하기 / Panel Collection Binding / MVVM CommunityToolkit 사용 [개요]오늘 공유할 정보는 Button control을 panel에 동적 할당하는 방법입니다.개발을 진행하다 보면 생각 외로 동적으로 컨트롤해야 하는 부분이 많습니다. 이유는 궁극적으로 패턴을 구현해서 유지보수에 용이하도록 하기 위해서죠. 일반적으로 WPF를 접했다면 대부분의 사람들이 추천하는 패턴이 MVVM 패턴입니다. Foreground와 Background를 구분하고 Background에서도 간섭되는 부분을 최소화하며 확장성을 가지게 하기 위해서입니다. 그래프를 그리는 여러 개의 뷰를 만든다고 가정할 때 동일한 기능이지만 적용되는 데이터가 다르다면 단순 View를 복사하는 개념보다 동적으로 생성하는 게 유지보수에 용이하기 때문입니다. 동일 기능 View를 여러개 복사 붙여 넣기 해서 이름 뒤에 1,.. 2025. 3. 5. [C# WPF] Thread Safe한 사용법 / Abort Exception / EventWaitHandle로 Join하기 [개요]개발을 진행하다 보면 필수적으로 사용하게 되는 테크닉이 Thread의 개념입니다. 요새는 Task로 더 편하게 사용할 수 있지만 Task 내부는 Thread로 구성되어 있으며 실질적으로 사용되는 위치에 따라서 Thread와 Task를 구분하여 사용할 줄 알아야 합니다. 좋은 기능이 있어도 장단점을 알고 적절한 곳에 사용할 수 있느냐도 개발자의 급을 나눌 수 있다고 생각하거든요.오늘은 Thread의 대강 기념과 어떻게 하면 안전하게 사용할 수 있고 어떤 방식으로 Thread를 기다리는지 알아보겠습니다. [Thread 정의]Thread의 정의는 프로세스 내에서 실제로 작업을 수행하는 주체를 의미합니다. 뭐든 정의는 어렵지만 중요하기도 하지요. 정의가 어렵다면 요새 컴퓨터가 발전하면서 cpu가 점차 세.. 2025. 2. 12. 이전 1 2 3 4 ··· 9 다음