본문 바로가기
728x90
반응형

전체보기63

[c#] STAThread/COM(Component Object Model) 1. STAThread란? Indicates that the COM threading model for an application is single-threaded apartment (STA). - MSDN - 응용 프로그램의 COM 스레딩 모델이 STA (단일 스레드 아파트) 임을 나타냅니다. 무슨 말인지 잘 모르겠어서 구글링을 해보았다. STAThreadAttribute는 기본적으로 Windows 메시지 펌프가 COM 구성 요소와 통신하기위한 요구 사항입니다. 핵심 Windows Forms는 COM을 사용하지 않지만 시스템 대화 상자와 같은 OS의 많은 구성 요소가이 기술을 사용합니다. COM 스레딩 모델은 COM interop을 사용하는 응용 프로그램에만 적용됩니다. COM 스레딩 모델을 단일 스레.. 2021. 1. 12.
[c#] 쓰레드 동기화 클래스 3(AutoResetEvent, ManualResetEvent, CountdownEvent) 1. 신호에 의한 쓰레드 동기화 이전까지 배운 쓰레드 동기화들은 [c#] 쓰레드 동기화 클래스 1(Lock, Monitor) [c#] 쓰레드 동기화 클래스 2(Mutex, Semaphore) 공유 되는 리소스에 락을 걸어서 쓰레드 접근을 제한했다. 하지만 지금 배울 것은 대기중인 쓰레드에 신호를 보내어 쓰레드 흐름을 통제하는 방식이다. 많이 사용되는 방식에는 AutoResetEvent, ManualResetEvent, CountdownEvent, Wait/pulse 등이 있다. * 여기서 Event는 윈도우 프로그래밍에서 말하는 event와 다른 개념 = 쓰레드 동기화에 사용되는 OS리소스이다. 2. AutoResetEvent using System; using System.Threading; names.. 2019. 10. 8.
[c#] 쓰레드 동기화 클래스 2(Mutex, Semaphore) 이전글 [c#] 쓰레드 동기화 클래스 1(Lock, Monitor) 1. Mutex Mutex는 Monitor와 비슷하지만 한 프로세스 내 뿐만 아니라 프로세스간에서도 Locking이 가능하다. 하지만 Monitor Locking에 비해 50배 정도 느리므로 한 프로세스 내에서 Lock이 필요한 경우는 Lock이나 Monitor를 쓴다. Mutex를 using문으로 감쌌다고 해서 lock처럼 생각하면 안된다. mutex.ReleaseMutex를 사용해서 해제해야한다. using System; using System.Threading; namespace ThreadSafe { class Program { private static int baby = 0; private static object lockOb.. 2019. 10. 8.
[c#] 쓰레드 동기화 클래스 1(Lock, Monitor) 1. Unsafe Method : 쓰레드 동기화를 하지 않은 메서드 using System; using System.Threading; namespace ThreadSafe { class Program { private static int baby = 0; static void Main(string[] args) { for (int i = 0; i < 10; i++) { new Thread(CountBaby).Start(); } } private static void CountBaby() { baby++; Console.WriteLine(baby); } } } 2. Lock using System; using System.Threading; namespace ThreadSafe { class Progra.. 2019. 10. 8.
[c#] Thread Safe (쓰레드 동기화) 쓰레드 동기화란? 다중 스레드 환경에서 어떤 메서드를 여러 쓰레드가 동시에 입장하여 메서드 안의 값들을 차례대로 엑세스하지 않을 때, 이 메서드를 통한 결과 값은 잘못될 가능성이 매우 높다. (데이터의 신뢰성이 무너진다.) 따라서 여러 쓰레드의 공유 자원이 있을 경우 동시에 접근하는 것을 제어하여 차례대로 또는 제한적으로 접근하도록 하는 것. 쓰레드 동기화를 위한 c# 클래스 Lock Monitor Mutex Semaphore AutoResetEvent ManualResetEvent CountdownEvent 2019. 10. 8.
[c#] 이벤트(event)와 델리게이트(delegate) 이벤트(event)와 델리게이트(delegate)를 함께 알아보겠습니다. 델리게이트 선언 public deleagte void SomeEventHandler(int time); 선언한 델리게이트 인스턴스 선언 public event SomeEventHandler EventHappened; public void CheckTime(bool isAM, int time) { if (isAM) { EventHappened(time); } } 이벤트 핸들러 만들기.(델리게이트 선언한 매개변수 타입, 개수가 일치하는 메소드로 만들기) public static void TimeHanlder(int time) { Console.WriteLine("오전 {0}시 입니다.", time); } 이벤트 객체에 핸들러를 등록한다.. 2019. 10. 8.
[Tip] 입소문난 영양제 참고 https://cafe.naver.com/dieselmania?iframe_url=/ArticleRead.nhn%3Fclubid=11262350%26page=3%26menuid=55%26boardtype=L%26articleid=24806267%26referrerAllArticles=false 2019. 10. 2.
[Excel] 엑셀 자주쓰이는 함수 모음 문서작업을 빠르게! 참고 https://cafe.naver.com/dieselmania?iframe_url=/ArticleRead.nhn%3Fclubid=11262350%26page=3%26menuid=55%26boardtype=L%26articleid=28143503%26referrerAllArticles=false 2019. 10. 2.
[Tip] 떡볶이 맛있게 만드는 법 +추가로 분식집 레시피 물 400ml 고춧가루 1 숟갈, 설탕 2 숟갈, 소금 1/3 숟갈, 미원 1/2 커피스푼, 파 적당히 넣고 떡 투하 후 계속 끓이다가 국물에 점도가 생기면 오뎅 2장 잘라서 투하 후 2분 정도 끓이면 완성 참고 https://cafe.naver.com/dieselmania?iframe_url=/ArticleRead.nhn%3Fclubid=11262350%26page=2%26menuid=55%26boardtype=L%26articleid=28581653%26referrerAllArticles=false 2019. 10. 2.
728x90
반응형