C# - Enum

Enum의 요소를 foreach로 열거하기 void Main() { foreach (TEST val in Enum.GetValues(typeof(TEST))) { Console.WriteLine("{0} - {1}", val, (int)val); } } enum TEST { ITEM_1 = 1, ITEM_2 = 10, ITEM_3 = 21, } 결과 ITEM_1 - 1 ITEM_2 - 10...
더 읽기

C# - 자신의 ip 주소 얻기

string myIPAddress = ""; var ipentry = System.Net.Dns.GetHostEntry(System.Net.Dns.GetHostName()); foreach (var ip in ipentry.AddressList) { if (ip.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork) { myIPAddress = ip.ToString(); break; } }
더 읽기

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 =...
더 읽기