c#

  • [c#] 문자열 리스트 출력하기 – ListBox, ListView, DataGridView 선택

    예를 들어 조건을 만족하는 주식 종목들의 이름을 리스트의 형태로 출력하는 경우를 생각해 본다. 이름들을 한꺼번에 출력할 수 있고 가격 등이 변하여 조건을 만족하면 추가하여 출력할 수도 있다. 이들 가운데에 일부는 글꼴의 형태를 굵게 하거나 색을 바꿀 수 있으며 순서를 바꿀 수도 있다. 이런 기능들을 위해서는 어떤 비주얼 오브젝트를 쓰는 게 좋을까? 문자열을 리스트의 형태로 출력할…

  • [c#] rtf(rich text format) 줄 바꾸기 \par

    rtf를 적용한 문자열을 .네트의 richTextBox에 어싸인하면 커서는 문자열의 제일 끝으로 간다. richTextBox의 가로 스크롤 바를 활성화한 경우에는 문자열의 왼쪽이 잘려 보일 수 있다. 이 문제를 해결하기 위해 문자열의 끝에 줄을 바꾸는 \par를 붙여 봐도 소용이 없다. 이거 하나만으로는 줄이 바뀌지 않기 때문이다. \par는 그 뒤에 무언가가 올 때 비로소 작동한다. 따라서 richTextBox에 문자열을 어싸인한 뒤…

  • [c#] 32 비트 애플리캐이션 메모리 늘리기

    64 비트 윈도우즈에서 32 비트 애플리캐이션을 써야 할 때가 있다. 32 비트 라이브러리를 써야 하는 경우가 대표적인 예다. 이때 이론적으로는 2gb까지 메모리를 쓸 수 있지만 사실적으로는 1gb를 조금 넘은 때 애플리캐이션이 멈춘다. 64 비트 윈도우즈에서 32 비트 애플리캐이션은 이론적으로 메모리를 4gb까지 쓸 수 있다. 사실적으로는 3gb를 조금 넘게 이용할 수 있다. 컴파일을 할 때 largeaddressaware…

  • [ls api] t1637 – 프로그램 매매 대이터가 존재하지 않는 경우

    t1637을 이용하면 특정 종목의 프로그램 매매 대이터를 한 번에 최고 100 영업일 꺼까지 다운로드할 수 있다. 프로그램 매매가 모든 종목들을 대상으로 이루어지는 건 아니다. 프로그램 매매로 거래가 되지 않은 종목에 대해 위의 트랜잭션으로 리퀘스트를 하면 서버는 널을 보내지 않고 아예 리퀘스트 응답 패킷을 보내지 않는다. 이례적인 방법이다. 비슷한 경우 보통은 빈 대이터를 보내므로 이걸 받아서…

  • [c#] 윈도우즈 폼즈 애플리캐이션 강제로 종료하기

    흔히 애플리캐이션을 종료할 때 아래의 방법들을 쓴다. 위 방법들의 문제는 form closing 이벤트가 실행된다는 거다. 이 이벤트에 무언가 내용이 있다면 실행이 될 텐데 그렇다면 강제 종료가 아니다. 묻지도 따지지도 않고 강제로 끝내 버리려면 아래와 같이 한다. 첫째 방법은 말 그대로 매인 뜨레드만 종료한다. 따라서 여전히 작동하고 있는 다른 뜨레드가 있다면 마치 애플리캐이션이 종료된 거처럼 보여도…

  • [c#] 프로세스의 cpu 점유율 측정하기 – PerformanceCounter

    To read from a performance counter, create an instance of the PerformanceCounter class, set the CategoryName, CounterName, and, optionally, the InstanceName or MachineName properties, and then call the NextValue method to take a performance counter reading.– PerformanceCounter Class CategoryName과 CounterName을 아규먼트로 넣어야 하는데 InstanceName 등은 넣어야 할 때가 있고 그러지 않아도 될 때가 있다는 말이다….

  • [c#] 간단한 멀티 뜨레드, 크로스 뜨레드, 인보크 예제

    위 예제는 뜨레드를 새로 만들어서 래이블에 문자를 출력하는 거다. TaskFactory.StartNew를 이용하여 새로운 뜨레드를 만들고 실행한다. Control.Invoke를 이용하여 새로 생긴 뜨레드에서 크로스 뜨레드 오류를 피하여 매인 뜨레드에서 만들어진 래이블에 문자를 출력한다.

  • [프로그래밍] 쉬운 인터패이스 설명 – interface와 class 비교

    interface는 클래스와 비슷하여 c#의 경우 type system 항목에 같이 설명되어 있다. 아래의 예제는 인터패이스 안에 하나의 메떠드를 선언한 뒤 두 개의 서로 다른 내용으로 실행되게 하는 거다. 클래스 안에서는 메떠드를 선언하고 실행부까지 코딩할 수 있지만 인터패이스에선 그렇게 할 수 없다. 대신 클래스가 인터패이스를 상속하여 자유롭게 실행부를 코딩할 수 있다. 심지어 여러 인터패이스들을 동시에 상속할 수도…