C# WPF/Thread
Winform async, await
Winform async, await
2023.10.12윈폼 동기버튼을 누르면, RefreshLable( ) 이 실행되는 동안 다른 작업을 할 수 없다. 윈폼 비동기버튼을 누르면, RefreshLableAcync( ) 함수가 비동기로 동작하여 UI 동작에 영향이 없다.이 실행되는 동안 다른 작업을 할 수 있다. 윈폼 비동기, await C# async는 컴파일러에게 해당 메서드가 await를 가지고 있음을 알려주는 역할을 한다. async라고 표시된 메서드는 await를 1개 이상 가질 수 있다.하나도 없는 경우라도 컴파일은 가능하지만 Warning 메시지가 표시된다.
Thread 04. Task, Async, Await
Thread 04. Task, Async, Await
2023.10.05목표 : Task.Run + async/await + return + Task.Delay 조합 1. 비동기 프로그래밍 더보기CPU(중앙처리장치)는 메모리 접근, 데이터 입출력, 네트워크 통신, 화면 렌더링 제어 등 수많은 작업을 수행한다. 그런데 CPU가 디스크나 네트워크처럼 속도가 느린 작업이 끝날 때까지 그대로 기다린다면?? 멈춰진 고속 연산 장치 CPU의 성능이 낭비된다. 이를 방지하기 위해 비동기 프로그래밍 기법을 사용한다. 비동기 프로그래밍은 CPU가 입출력 완료를 기다리느라 멈춰 있지 않고, 그 시간 동안 다른 연산을 처리하도록 만든다. 입출력이 끝나면 알림(콜백, 이벤트 등)을 통해 해당 작업을 다시 이어갈 수 있어, CPU 자원을 효율적으로 활용할 수 있다. 2. C# 에서 ..
Thread 03. ThreadPool
Thread 03. ThreadPool
2023.10.05C# Threading 관련 기술Thread System.Threading 네임스페이스에 정의되어 있다.NET Framework 1.0부터 사용 가능하다Thread에 실행될 로직을 넘겨주며, 생성한 후 명시적으로 실행 해야 한다.Thread는, 생성, 삭제될 때 상대적으로 많은 시스템 자원을 사용해 비효율적이다.ThreadPool 은 Thread 를 미리 생성해 두고, 필요할 때 사용하고 반환하는 방식으로 기존 Thread 를 개선했다.ThreadPool System.Threading 네임스페이스에 정의되어 있다.NET Framework 1.0부터 사용 가능하다ThreadPool은 특정 이름을 지정할 수 없다.Join 과 같은 조정을 사용할 수 없다. 백그라운드 스레드라서 의도하지 않게 종료될 수 있다...
Thread 02. 스레드, 블로킹, 논블로킹
Thread 02. 스레드, 블로킹, 논블로킹
2023.10.041. 스레드 1.1 실행 중인 프로세스의 스레드 확인윈도우 환경에서, Ctrl + Shift + ESC 키를 눌러 Task Manager(작업 관리자)를 실행한다.[ Details ] 탭에서 컬럼명(Name, Status...)을 오른쪽 클릭하면 보여질 추가 정보를 선택할 수 있다.Select Columns 에서 Threads 를 체크한다.메모장 프로그램은, 실행(프로세스)중에 15개의 스레드가 작업하고 있다.(스레드의 이해 없이 프로그래밍은 불가능하다.) 1.2 스레드란? 1.2.1 Process(프로세스)가 "실행" 단위라면, Thread(스레드)는 "실행 흐름" 단위다. 하나의 프로그램은 하나 이상의 프로세스를 가지고 있고, 하나의 프로세스는 반드시 하나 이상의 스레드를 갖는다.프로그램 실행 =..
Thread 01. 프로세스, 동시성, 병렬성, 비동기
Thread 01. 프로세스, 동시성, 병렬성, 비동기
2023.10.041. 프로그래밍 기술을 바라보는 개발자의 관점 모든 프로그래밍 기술은, 폰 노이만 구조 이래 근본 원리와 기술 뿌리가 변하지 않았다.모든 프로그래밍 기술은, 개발에 필요해서 등장했다.모든 프로그래밍 기술은, 기존 개발 방법을 조금이라도 쉽고, 편리하게 하기 위해 발전된 다른 형태일 뿐이다. 그렇다면 스레드는 왜 등장했고, 어떤 부분을 개선하기 위해 등장했을까? 2. 프로세스와 실행 2.1 학습방향스레드는 프로세스를 먼저 이해해야 한다.스레드 학습 이전에 프로세스(≒실행) 관점에서 용어를 정리한다. 2.2 실행중인 프로세스 확인하기윈도우 환경에서, Ctrl+ Shift + ESC 단축키를 눌러 Task Manager(작업 관리자)를 실행한다.좌측의 [ Process ] 탭에서 현재 실행 중인 프로..