C# - ConcurrentQueue, ConcurrentDictionary

ConcurrentQueue 자료구조 Queue의 멀티 스레드용 컨테이너 MSDN http://msdn.microsoft.com/ko-kr/library/dd267265.aspx 정의 var queue = new System.Collections.Concurrent.ConcurrentQueue<string>(); 데이터 추가 queue.Enqueue("First"); 데이터 참조 string item; if (queue.TryPeek(out item)) { Console.WriteLine("First item was " + item); } else { Console.WriteLine("Queue was empty."); } 데이터 가져오기(삭제)...
더 읽기

C# - Http Request

닷넷프레임워크에서는 서버로의 동시 접속수가 기본으로 최대 2로 제한되어 있다. 이 때문에 웹서비스 클라이언트에서 웹 서비스등을 호출할 때 처리량을 올리가 위해서는 멀티스레드에서 웹서비스를 호출하여도 액티브한 최대 동시 접속 수는 2로 된다. 싱글 스레드로 통신 할 때와 비교하면 처리량(시간당 처리량)은 향상 되지만...
더 읽기

C# - http 요청 시 동시 접속 수 제한

닷넷프레임워크는 서버로의 동시 접속 수가 기본으로 최대 2로 제한 되어 있다 즉 클라이언트는 한 서버로 머신당 최대 동시 접속 수가 2개로 제한 그래서 웹 서비스 클라이언에서 웹 서비스 등을 호출할 때 출력결과를 올리기 위해서는 멀티스레드로 웹서비스를 호출하여도 실제로는 활동하는 최대...
더 읽기

C# - Dataflow

닷넷프레임워크 4.5에 추가 NuGet으로 입수 가능 https://www.nuget.org/packages/Microsoft.Tpl.Dataflow MSDN에 문서는 있지만 정식 닷넷프레임워크에는 추가 되지 않은 상태 MSDN: http://msdn.microsoft.com/en-us/library/hh228603.aspx 일어 MSDN: http://msdn.microsoft.com/ja-jp/library/vstudio/system.threading.tasks.dataflow.aspx 번역기로 돌리면 영어보다 보기 편함 비동기 프로그래밍은 쉽지는 않지만 의외로 기존의 동기식 코드를 손쉽게 비동기 코드로 바꿀 수 있는...
더 읽기

C# - TPL

닷넷 프레임워크 4.0에서 추가된 병렬 프로그래밍 라이브러리 여기의 글을 정리 Parallel.ForEach/For Parallel.ForEach using System; using System.Diagnostics; using System.Threading; using System.Threading.Tasks; namespace Sample01_ParallelForEach { class Program { static void Main() { //----- 데이터 생성 var collection = new int[]{ 10, 20,...
더 읽기

C# - Thread

현재 스레드의 ID 얻기 System.Threading.Thread.CurrentThread.ManagedThreadId 스레풀의 최소, 최대 스레드 개수 알기 int workThreads = 0; int iocpThreads = 0; // 최소 스레드 개수 System.Threading.ThreadPool.GetMaxThreads(out workThreads, out iocpThreads); // 최대 스레드 개수 System.Threading.ThreadPool.GetMinThreads(out workThreads, out iocpThreads); 스레드 사용하기 System.Threading.Thread TimeThread =...
더 읽기

C# - Trace

Trace 클래스 코드 실행을 추적하는 데 필요한 메서드 및 속성 집합을 제공 네임스페이스: System.Diagnostics 어셈블리: System(system.dll) Trace 클래스의 속성 및 메서드를 사용하여 릴리스 빌드를 측정 할 수 있다. 이렇게 하면 실제 설정에서 실행되는 응용 프로그램의 상태를 모니터링할 수 있다. 추적...
더 읽기

C# - Unit Test Mock

왜 사용하는가? Mock 라이브러리는 단위 테스트를 쉽게 하기 위해 존재합니다. 예를 들어서, 한 클래스 테스트에 데이터베이스를 활용해야 하는 경우가 있다고 가정을 합시다. 이 경우 직접 데이터베이스에 정보를 넣었다 뺐다 하면 상당히 큰 부담이 됩니다. 이런 부담을 주지 않고, 데이터베이스의 행동을...
더 읽기