본문 바로가기
반응형

c#11

[c#] BeginInvoke 사용법 및 예제 -4- (BeginInvoke 예제) 개요 1. Thread 2. lock 3. BeginInvoke(비동기, 스레드풀) 4. BeginInvoke2(비동기 리턴값) 5. BeginInvoke3(콜백) 6. BeginInvoke4(BeginInvoke 예제) 1. 예제 BeginInvoke의 종합 예제를 만들어봤습니다. BeginInvoke 1, 2, 3 편에서 나온것들을 정리하는 느낌으로 읽어보시면 좋을것 같습니다. namespace CallbackEx { class Program { static void Main(string[] args) { Boss boss = new Boss(); boss.Run(); } } } namespace CallbackEx { public delegate int myDel(int n); class Boss .. 2020. 10. 2.
[c#] BeginInvoke사용법 및 예제 -3-(콜백) 개요 1. Thread 2. lock 3. BeginInvoke(비동기, 스레드풀) 4. BeginInvoke2(비동기 리턴값) 5. BeginInvoke3(콜백) 6. BeginInvoke4(BeginInvoke예제) 이번게시글에서는 비동기작업의 콜백에 대해 알아보겠습니다. 콜백이란 피호출자가 호출자의 메서드를 실행해주는 것을 말하며 BeginInvoke에서의 콜백메서드는 비동기작업이 끝난 직후 실행됩니다. (보통 비동기작업은 외부에서 끝내주는 경우가 많아 콜백이라고 합니다.) 즉 비동기호출을 한 스레드는 비동기의 일이 진행이 되던 말던 신경을 안쓰고 다음줄을 실행하게 되는데 작업이 끝났다는걸 콜백메서드를 통해 보고받고 원하는 로직을 실행한다고 생각하시면 됩니다. 비동기호출을 한 스레드를 블락시키거나,.. 2020. 9. 7.
[c#] BeginInvoke사용법 및 예제 -2-(비동기 리턴값) 개요 1. Thread 2. lock 3. BeginInvoke(비동기, 스레드풀) 4. BeginInvoke2(비동기 리턴값) 5. BeginInvoke3(콜백) 6. BeginInvoke4(BeginInvoke예제) 저번게시글에서 BeginInvoke의 사용법에 대해 알아보았습니다. 비동기작업은 스레드를 직접 생성하는것과는 다르게 스레드풀에서 돌아간다는 차이가 있긴 하지만 저번게시글의 작업은 스레드를 하나 더 만들어서 하는것과 큰 차이점을 찾을 수 없었습니다. 이번 게시글에서는 스레드의 작업과 비동기작업의 차이점에 대해 살펴보겠습니다. 비동기와 스레드 모두 여러개의 작업을 할 수 있지만 비동기작업은 스레드와 다르게 리턴값을 받아올 수 있으며, 콜백이라는 구문이 존재합니다. 이번 게시글에서는 비동기작업.. 2020. 9. 7.
[c#] 인터페이스 사용법 및 예제 1. 인터페이스란 인터페이스란 추상클래스와 굉장히 유사합니다. 인터페이스에서 몸체없는 메서드를 만들어주고 클래스들에서 상속받아서 사용하곤 합니다. 단 상속받은 클래스들은 인터페이스의 멤버를 반드시 구현해줘야 합니다. 흔히 규격을 만들때 사용한다고 합니다. 아규먼트 패싱을 하는데 주로 사용하며 layer 간 연결을 해주는 역할을 하기도 하며 고수준의 것이 저수준의 것에 의존하지 않게 하기 위해 사용하기도 합니다. 추상클래스와의 차이점은 추상클래스는 다중상속을 지원하지 않지만 인터페이스는 다중상속을 지원하며, 인터페이스 자체로 인스턴스 생성이 안된다는 특징이 있습니다. 저는 참조변수를 통일 시켜 결합도를 낮추는데 쓰는 방법을 예제로 만들어 봤습니다. 2. 예제 namespace InterfaceEx { cl.. 2020. 8. 3.
[c#] BeginInvoke사용법 및 예제 -1- 개요 1. Thread 2. lock 3. BeginInvoke(비동기, 스레드풀) 4. BeginInvoke2(비동기 리턴값) 5. BeginInvoke3(콜백) 6. BeginInvoke4(BeginInvoke예제) 이번게시글에서는 BeginInvoke에 대해 알아보겠습니다. BeginInvoke는 delegate와 함께 캡슐화된 예약어입니다. delegate사용법은 아래 게시글을 참고해주세요 c# delegate, event 사용법과 사용예제 delegate는 메서드 대리자입니다. delegate로 메서드 대리자를 선언해주고 원하는 메서드를 참조시킬수 있습니다. 쉽게말하면 함수를 보관하는 통을 만들고(대리자선언) 그 통안에 함수를 넣고 나중 frozenpond.tistory.com 1. 예제 nam.. 2020. 8. 3.
[c#] lock 사용법 및 예제 개요 1. Thread 2. lock 3. BeginInvoke(비동기, 스레드풀) 4. BeginInvoke2(비동기 리턴값) 5. BeginInvoke3(콜백) 6. BeginInvoke4(BeginInvoke예제) 저번 게시글에서 스레드의 사용법을 확인하였습니다. 이번게시글에서는 스레드를 사용할때 주의해야 할 점에 대해 정리합니다. 1. 예제 namespace Increase { class Program { static void Main(string[] args) { Data myData = new Data(); Thread myThread1 = new Thread(MyFunc); Thread myThread2 = new Thread(MyFunc); myThread1.Start(myData); my.. 2020. 8. 3.
[c#] 스레드(Thread)사용법 및 예제 개요 1. Thread 2. lock 3. BeginInvoke(비동기, 스레드풀) 4. BeginInvoke2(비동기 리턴값) 5. BeginInvoke3(콜백) 6. BeginInvoke4(BeginInvoke 예제) 이번 게시글에서는 스레드에 대해 정리합니다. 들어가기 앞서 프로세스와 스레드가 무엇인지 간단히 알아보고 코드를 보겠습니다. 프로세스란 메모리에 적재된 실행되는 프로그램을 말하며(프로세스는 데스크탑 애플리케이션, 백엔드 애플리케이션 그 자체를 말합니다) 스레드란 프로세스 내부에서 생성되는 실제로 작업을 하는 주체를 말합니다. 하나의 프로세스는 여러개의 스레드를 가질 수 있으며 같은 프로세스안에 있는 스레드들은 코드, 데이터, 힙 영역은 공유하고 스택은 각각 따로 할당된다는 특징이 있습니다.. 2020. 7. 30.
[c#] Try Catch 사용법 및 예제 try catch에 대해 정리합니다. 0으로 나누려 했거나, 배열의 인덱스가 벗어났다던가 등등 이러면 예외가 나서 try catch에서 잡아야 한다..등등 그러나 try catch가 정확히 어디에? 어떤부분이 좋아서 쓰는건지는 잘 와닿지 않습니다. 이번게시글에서 try catch의 용도를 확인해보고 try catch를 사용해서 예외를 잡는경우와 if를 통해 예외를 잡는방법 및 장단점을 확인해보겠습니다. 1. 예제 static void Main(string[] args) { int[] myArray = new int[3]; myArray[0] = 10; myArray[1] = 20; myArray[2] = 30; Console.WriteLine("0~2 사이의 숫자를 입력하세요"); string a = C.. 2020. 7. 28.
[c#] static과 singleton사용예제 static의 사용예제에 대해 알아보겠습니다. c#을 처음 공부할때 static은 한번 선언되면 다시 선언할수 없다. 라는 특징으로 접근했던 기억이 있습니다. 사실 static 예약어는 클래스 내부에 정적필드를 만들때 주로 사용합니다.(전역화시킨다고도 합니다.) 1. 예제 namespace StaticTest { class Program { static void Main(string[] args) { Person person1 = new Person("Tom"); Console.WriteLine(person1.personCount); Person person2 = new Person("John"); Console.WriteLine(person2.personCount); } } class Person { .. 2020. 7. 7.
반응형