C# - 콘솔 키보드 입력, 프로그램 종료 키 조사

키보드 입력 class Program { static void Main(string[] args) { System.Threading.ThreadPool.QueueUserWorkItem(new System.Threading.WaitCallback(키보드입력조사), null); while (true) { ...... System.Threading.Thread.Sleep(128); } } static void 키보드입력조사(object userState) { while (true) { var command = Console.ReadLine(); if (command == "종료") { ............. } }...
더 읽기

C# - ArraySegment 배열을 새로 할당하지 않고 특정 위치의 내용을 참고 하고 싶을 때

배열(예를들면 네트워크에서 받은 데이터를 저장한 버퍼 byte[] buffer)의 특정 위치에서 특정 크기만큼 참고하고 싶을 때 보통 새로 배열을 만든 후 복사해야 원하는 데이터만을 참조할 수 있다. 그러나 ArraySegment를 사용하면 새로 배열을 만들지 않으면서 버퍼의 특정 데이터를 참조할 수 있다. ArraySegment를...
더 읽기

C# - AutoMapper

기본 객체간의 복사를 자동으로 한다. 복사되는 객체에 복사한다. Nuget으로 설치 가능. 예 public class SourceType { public int SourceId { get; set; } public string Value { get; set; } public DateTime DateUpdated { get; set; } } public class...
더 읽기

C# - Debug 클래스

Debug 클래스 Debug 클래스는 그 이름대로 디버그 정보를 출력하는 클래스이다. Debug 클래스는 System.Diagnostics 이름 공간에 있다. 사용 예 using System.Diagnostics; Debug.WriteLine("Start Method"); Debug.IndentSize = 4; Debug.Indent(); Debug.Write("Debug.Write"); Debug.WriteLine("는 개행합니다."); for (int i = 0; i < 4; i++) { Debug.WriteIf(i%2==1,i);...
더 읽기

C# - List, Tuple, Queue, SortedList, SortedDictionary, SortedSet

List 정렬 https://msdn.microsoft.com/ja-jp/library/w56d4y5z(v=vs.110).aspx https://msdn.microsoft.com/ja-jp/library/b0zbh7b6(v=vs.110).aspx https://msdn.microsoft.com/ja-jp/library/234b841s(v=vs.110).aspx List<UserWeekTotalNetProfitResult> TopPlyser = new List<UserWeekTotalNetProfitResult>(); TopPlyser.Sort(PlayerCompare); static int PlayerCompare(UserWeekTotalNetProfitResult user1, UserWeekTotalNetProfitResult user2) { if (user1.TotalScore == user2.TotalScore) { if (user1.Level == user2.Level) { // UID는 절대 동점이 없음 if (user1.UID > user2.UID) { return -1;...
더 읽기

C# - XmlTextReader

XmlTextReader 로 XML 읽기 예제 1 <?xml version="1.0" encoding="utf-8" ?> <Config> <log4net> <root> <!--로그 레벨 지정. 아래에서는 INFO 레벨 이상만 로그가 남는다--> <level value="INFO" /> <!--어느 로그를 사용할 것인지 지정한다. 파일 로그와 날짜별 로그 사용--> <appender-ref ref="DayRollingLogToFile" /> <!--복수 지정...
더 읽기

Windows에 Rust 설치하기

Rust를 Windows에서 사용할 때 C++ 컴파일러가 별도로 필요하므로 먼저 VisualStudio Build Tools를 설치한다.(Visual Studio를 설치하면 된다) Rustup 설치 Rustup 사이트에 가서 rustup‑init.exe 링크를 클릭해서 다운로드 한다. 다운로드한 rustup-init.exe을 클리하여 설치한다. 설치가 끝난 후 아래 명령어를 실행하여 잘 설치 되었는지 확인한다....
더 읽기

C# - 닷넷프레임워크의 타이머 관련 클래스

인터넷에 있는 글에서 가져온 것입니다. DispatcherTimer 일반 타이머는 메인 스레드가 아닌 다른 스레드를 만들어서 처리 되지만 이것은 실행은 메인 스레드에서 처리 되어 메인 스레드와 동기화가 보장 된다. MSDN의 설명 각 Dispatcher 루프의 맨 위에서 DispatcherTimer가 다시 평가된다. 시간 간격이 발생할...
더 읽기

CMake에서 GoogleTest 사용하기

출처 구성은 아래와 같이 되어 있다고 한다. src 폴더 아래가 테스트 대상 코드, test 폴더 아래는 테스트 코드 클래스 단위로 파일이 나누어져 있다고 가정한다. mk.sh을 실행하면 build/src/ 에 응용 프로그램의 실행 파일, build/test/ 에 테스트의 실행 파일이 만들어진다. ├── CMakeLists.txt...
더 읽기

cmake에서 CMAKE_C_FLAGS에 설정한 값이 무시될 때

출처 CMakeLists.txt 안에서 컴파일 옵션을 지정하려고 했는데 설정이 무시되는 문제를 만났다. 컴파일 옵션 지정과 add_subdirectory 명령어 기술 순서가 문제였다. 문제 CMakeLists.txt cmake_minimum_required(VERSION 3.12) project(cmake_01) set(APP_NAME example) add_subdirectory(src) # 여기가 무시된다. set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall") set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0") set(CMAKE_CXX_FLAGS ${CMAKE_C_FLAGS}) set(CMAKE_CXX_FLAGS_DEBUG...
더 읽기