본문 바로가기
728x90
반응형

프로그래밍/c#16

[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] 프로그램 소스코드를 공개하는 사이트 모음집 [프로그래밍 Tip] 아래는 프로그램 소스코드를 공개하는 사이트를 모아둔 것입니다. 1. Visual C++, C# and Visual Basic 및 윈도우즈 .Net에 관련된 소스코드들이 공유되는 대표적인 사이트 http://www.codeguru.com/ 2. 인터넷 상의 돌아다니는 코드들을 모아놓은 사이트 http://www.planet-source-code.com/ 3. 많은 소스코드와 튜토리얼을 제공하고 있는 사이트 http://www.codeproject.com/ 4. 전세계를 석권하고 있는 구글에서 제공하는 오픈소스 사이트 http://code.google.com/ http://code.google.com/projects.html 5. C++, Visual Basic, ASP, sourcec.. 2019. 10. 2.
[c#] 암호화 알고리즘 종류 및 설명 암호화 알고리즘은 총 3가지 1. 대칭형 암호(비밀키) 2. 비대칭형 암호(공개키) 3. 단방향 암호 1. 대칭형 암호 암호화 키 = 복호화 키 미국 표준 방식(AES)을 가장 보편적으로 사용 (DES 암호화 알고리즘을 대체하는 알고리즘) 그 외 RC4, Twofish, Serpent, Blowfish, CAST5, 3DES, IDEA 등 알고리즘이 존재 국내에서 개발된 SEED, ARIA라는 알고리즘도 있다. AES는 보안성이 뛰어남 AES의 키는 알고리즘에서 요구되는 128비트 또는 256비트 길이를 사용해야 하므로 16바이트 또는 32바이트를 사용 2. 비대칭형 암호 암호화 키 복호화 키 다름 대칭형 암호는 키를 어떻게 수신 측에 전달할 것인가에 대한 문제가 있음. 이 키를 털리면 평문(암호화되지 .. 2019. 10. 2.
[c#] Bitmap.Clone() vs new Bitmap Bitmap.Clone() vs new Bitmap 비교 Bitmap.Clone()Bitmap A = new Bitmap("somefile.png"); Bitmap B = (Bitmap)A.Clone();Bitmap.Clone() 메서드는 새 비트맵 개체를 생성하지만 픽셀 데이터는 원래 비트맵 개체와 공유 new Bitmap()Bitmap A = new Bitmap("somefile.png"); Bitmap B = new Bitmap(A);new Bitmap() 생성자는 픽셀 데이터의 자체 복사본이 있는 비트맵 개체를 새로 생성한다. 그런데Bitmap.Clone()은 비트맵을 dispose() 코드에 대한 참조를 전달하고 개체를 손실하지 않으려는 경우에만 사용해야 한단다. 왜냐하면 원본 파일을 잠금상태로.. 2018. 9. 4.
728x90
반응형