[C#] Callback, Delegate
SW/C# & WPF 2021. 6. 1. 23:04

Callback, Delegate Callback Method 콜백 메서드란 다음과 같이 표현할 수 있습니다. 다른 함수의 인자로써 이용되는 함수. 어떤 이벤트에 의해 호출되어지는 함수. A 라는 메서드에 B 라는 메서드를 인자로 넘겨주면서, A 메서드가 B 메서드를 특정 이벤트에서 호출하도록 한다고 가정해보겠습니다. 이 때, B 메서드가 콜백메서드가 됩니다. 델리게이트 델리게이트란 메소드를 참조하는 변수로 대리자 역할을 하는 녀석입니다. 델리게이트는 다음과 같이 사용합니다. 메소드와 동일하게 델리게이트(대리자) 선언 선언한 델리게이트 타입으로 델리게이트 변수를 생성 생성한 델리게이트 변수에 작업할 메소드를 참조 예제 namespace test{ delegate int testDelegate(int a,..

[WPF] Thread와 Dispatcher를 이용한 멀티스레딩
SW/C# & WPF 2021. 6. 1. 23:02

WPF Thread C# 과 WPF 의 Thread 관리에 대해서 정리한 내용입니다. C# 기본적으로 Main Thread가 존재하며 추가로 System.Threading.Thread 클래스로 Thread를 생성합니다. C#에서의 스레드는 생성자(Constructor)에 실행하고자 하는 method를 delegate로 지정하며, 객체를 생성해 Start() method를 호출하여 만들 수 있습니다. WPF 모든 WPF 프로그램은 최소한의 렌더링을 위한 백그라운드 쓰레드 와 UI 스레드(UI 인터페이스 관리) 두개의 쓰레드로 기동됩니다. UI Thread 는 STA(Single-Threadded Apartment) Main Thread로, UI 관련 작업을 모두 수행합니다. 즉, 사용자 입력을 받고 화면을..

[C#] HTTP 통신
SW/C# & WPF 2021. 6. 1. 21:09

HTTP 통신 C# HttpWebRequest, WebRequest 클래스를 활용하여 HTTP Request 요청을 보내고 응답을 받는 방법입니다. GET/POST 타입에 따라 request를 다르게 요청합니다. Get Request url/?/ + data 로 구성하여 url로 request를 요청합니다. (GET 방식) string url = "https://url-----/"; string response = string.Empty; // request setting HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Method = "GET"; request.Timeout = 10 * 1000; request.Heade..

[C#] 비동기식 프로그래밍 TAP
SW/C# & WPF 2021. 5. 19. 15:44

TAP(Task based Asynchronous Programming) 마이크로소프트 Docs 문서 를 바탕으로 내용 정리하였습니다. 동기식 프로그래밍 vs 비동기식 프로그래밍 코드는 일련의 명령문으로 이루어집니다. 다음 명령문이 시작되기 전에 각 명령문이 완료되는 구조입니다. 동기식 프로그래밍은 스레드에서 작업을 실행하는 동안 다른 작업을 수행하지 못하도록 차단합니다. 마치 어떤 데이터를 다운받는 동안 그 데이터를 다운받는 것을 지켜보며 어플리케이션이 멈춰있는 것처럼 보이는 것이죠. 비동기식 프로그래밍은 외부 리소스 할당과 작업 완료 시점에 따라 복잡한 순서로 코드를 사용하도록 설정합니다. 어떤 데이터를 다운받는 동안에도 어플리케이션이 다른 동작을 하도록 멈추지 않는 것이죠. 위의 예시처럼, 클라이언..