세미나하면서 알게된 기능 두개. 쓸만해보여서 기록함. 1. 함수 파라미터에 콜론 (선택적 인수) (https://docs.microsoft.com/ko-kr/dotnet/csharp/programming-guide/classes-and-structs/named-and-optional-arguments) 선택적 인수는 항상 끝에 나열되기 때문에, 새로운 인수를 추가하는 과정이 매우 번거롭다. 그리고 선택적 인수가 여러개 있을 때, 한개의 값만 넣으려고 하면 C++은 매우 불편했다.. static void Main( string[] args ) { List lstInteger = new List(); PrintTypeOfC( 1, null, lstInteger ); // 이렇게 중간에 선택적 인자에 값을 넣..
개요 .Net C#에서 지원해주는 *Awesome* 한 비동기 기능에 대해서 간단히 기록하려고 게시글을 작성합니다. 정확히는 Parallel 클래스에 관련된 함수들을 소개합니다. Parallel 클래스 간단하게 비동기 작업을 수행할 수 있도록 도와주는 클래스입니다. Task나 Action, Thread 같은 것들을 직접적으로 만들 필요 없이 기존에 사용하던 Loop나 함수처럼 간단히 사용할 수 있습니다!! Parallel.For (비동기 루프) 루프를 여러 스레드로 나누어 수행하도록 합니다. // iToPage까지의 게시글 내용을 하나하나 긁어오는 함수. List GetBoardContents( int iToPage_ ) { List lstResult = new List(); for ( int iPage..
개요 스레드 별로 독립적임을 보장해주는 자원을 만드는 템플릿 클래스이다. 아래 예를 보면 금방 이해가 될 듯. 예1 - 기본 사용법 // 쓰레드별로 서로 다른 Counter를 갖는 싱글턴 클래스 public class ThreadLocalClass : Singleton { // 글로벌 카운터 private static Int32 _iCounter = 0; // 쓰레드 전용 카운터 private ThreadLocal _iLocalCounter = new ThreadLocal( () => { return Interlocked.Increment( ref _iCounter ); } ); public bool Init() { return true; } // 쓰레드 전용 카운터 출력 public void Print..
개요 ?. ?? 모양부터 ??하게 만드는 연산자. 무슨 연산자인지 살펴보자. ?. 연산자 ?. 연산자는 [ Null이 아니라면 참조하고, Null이라면 Null로 처리 ]하라는 뜻이다. class CClass { public List lstNumber = new List();; }; static void Main( string[] args ) { CClass newClass = new CClass(); Console.WriteLine( newClass?.lstNumber ); // List 정보가 출력됨. CClass nullClass = null; Console.WriteLine( nullClass?.lstNumber ); // 아무것도 출력되지 않음. (null) } 아래의 CClass의 경우에는 멤..
개요 Tuple이라는 기능은 비단 C#에서만 사용하는 기능이 아니고 C++, 파이썬등 여러 프로그래밍 언어에서 자체 지원해줄만큼 강력한 기능이다. 이 기능이 무엇이며 언제 써야하는지 간단히 적어보았다. 필요성 먼저 아래와 같은 함수가 있다고 가정해보자. CResult Func(int a_, int b_, int c_) { CResult result = new CResult(); result.a = a_; result.b = b_; result.c = c_; return result; } 매개변수를 토대로 어떤 클래스를 만들어 뱉어주는 함수이다. 여기서 인자에 제한이 생겼다! 0이하의 값은 받지 않도록 수정해보았다. CResult Func(int a_, int b_, int c_) { // 0이하의 값이 ..
이 포스팅은 위의 두 주소에서 Strand를 공부하고 사용해본 기록이다. strand? : http://blog.naver.com/PostView.nhn?blogId=njh0602&logNo=220715956896&parentCategoryNo=&categoryNo=&viewDate=&isShowPopularPosts=false&from=postView [boost.asio] strand는 어떻게 동작하고 왜 사용해야 하는가? How strands work and why you should use themIf you ever used Boost Asio, certainly you used or a... blog.naver.com strand 직접 사용 : https://chipmaker.tistory.c..