본문 바로가기

728x90
반응형

프로그래밍&IT/C#

(36)
NamedPipe 사용해서 Process간에 데이터 전송 프로세스 간에 NamedPipeServerStream와 NamedPipeClientStream 를 이용해서 Process (프로그램) 간에 데이터 전송구조winform기반Sender와 Receiver 2개의 프로그램 작성Receiver 프로그램NamedPipeServerStream 사용한다.Sender (Client) 로부터 특정 메세지를 받으면 뭔가 작업을 하는게 목적 (여기선 단순히 "A"라 한다)처음 시작할때, 작동을 하며Start & Stop 버튼을 만들어 작동을 제어 한다.using System;using System.IO;using System.IO.Pipes;using System.Threading.Tasks;using System.Windows.Forms;namespace Receiver{..
[Winform] SuspendLayout / ResumeLayout & PerformLayout 에 대해서 나름대로 공부를 했다고해도 자꾸 잊게 되더라..여튼 이번엔 C# winform에서 쓰이는 SuspendLayout과 ResumeLayout (PerformLayout)관련해서 [C# winform] SuspendedLayout & ResumeLayoutUI 컨트롤의 레이아웃 업데이트를 효율적으로 관리하기 위해 사용되며, 이를 통해 불필요한 리소스 사용을 줄이고 성능을 최적화할 수 있다.SuspendLayout목적: 레이아웃 업데이트를 일시적으로 중단.여러 컨트롤을 추가하거나 크기 및 속성을 변경하는 작업 중에 레이아웃 업데이트가 계속해서 발생하는 것을 방지.성능 향상: 잦은 레이아웃 업데이트로 인한 성능 저하를 줄인다.ResumeLayout, PerformLayout목적: 중단된 레이아웃 업데이트를 다시..
TextBox에 숫자만 입력하기 & 3자리마다 콤마(,) 찍기 C# Winform (윈폼)의 기본 컨트롤 TextBox에 값을 입력할 때 필요한 기능들을 정리해봤다.알고리즘매매만들다보니 보유종목별로 평균 매입단가 등을 입력하거나 출력을 위해서 필요한 기능이라 찾아봤다.프리랜서 일 구할때는 확실히 Java가 낫긴하지만, 개인 프로젝트 (사업?)을 할 때는 C# Winform 을 시작한게 나쁘진 않았다는 생각이다. 목차숫자만 입력하기 (단, 삭제를 위해선 Back space는 있어야겠지?)숫자 입력시 3자리마다 콤마 찍기 숫자만 입력하기 public static void Textbox_KeyPress_ToEnterDigit(object sender, KeyPressEventArgs e) { if(!char.IsDigit(e.KeyChar) && e.KeyChar ..
스레드 동기화를 위한 동기화 객체들 알고리즘 매매를 개발하다보니비동기 그리고 스레드 관련된 일이 좀 많은 듯하다. 이에 스레드 동기화를 위한 객체들에 대해복습차 다시 한번 살펴봤다. 스레드동기화를 위한 동기화 객체들 1. MonitorMonitor는 객체의 동기화에 사용되며, 스레드가 임계 구역에 진입할 때 락을 설정합니다. 생성자가 따로 없으며Monitor.Enter와 Monitor.Exit을 사용하거나lock 키워드를 사용합니다.- 사용 예시lock (obj) { // 임계 구역 }Monitor.Enter(obj); try { // 임계 구역 } finally { Monitor.Exit(obj); }2. Mutex (뮤텍스)Mutex는 프로세스 간 동기화를 지원하는 동기화 객체로, 하나의 스레드만이 리소스에 접근하도록 보장합니다.- 생..
C# 윈폼에서 사용할 무료 차트 컴포넌트 알고리즘 매매 프로그램을 개발하고 있는 중에,수집된 데이터와 분석된 데이터 그리고 처리 (매매 주문과 이에 대한 처리 상황) 등을리포트성으로 받고 분석하고 싶은 생각이 들었다.이에 Winform에 사용할 무료 차트 컴포넌트를 미리 체크해봤다. 챗GPT는 C# 윈폼에서 사용할 무료 차트 컴포넌트들 어떤 걸 추천하는가? 1. ZedGraph* 설명: ZedGraph는 매우 간단하고 가벼운 차트 라이브러리로, 2D 라인, 바, 파이 차트를 지원합니다. 비교적 오래된 라이브러리지만, 여전히 많은 프로젝트에서 사용되고 있습니다.링크: https://github.com/ZedGraph/ZedGraph보니까, NuGet으로도 받을 수 있는 것 같다.2. LiveCharts* 설명: LiveCharts는 WPF와 Wi..
object의 DBNull처리 & List 마지막부터 가져오기 1). DBNull.Value 처리를 쉽게하기위해 object를 확장하는 부분예전에 투입되었던 프로젝트에서 본 확장 클래스/메서드 소스다.막상 써보니 유용해서 계속 기억해두려고 한다. 매번 DBNull.Value인지 확인해서 Convert를 해주었는데,이걸쓰니 DBNull.Value를 체크안하고 바로 To를 쓸수가 있었다. public static class ExtMethod { // 1) public static T To(this object obj) { if(obj is T) return (T)obj; try { if(obj == DBNull.Value) ..
[Visual Studio] 파일 선택하면 솔루션 탐색기에서 자동 이동하는 설정 개발자마다 차이는 있다만, 내가 현재 작성하는 class , 파일의 위치를 솔루션 탐색기에서 바로 보는 게 필요한 개발자도 존재를 한다. 이에 기본 옵션은 꺼져있다만 아래의 위치로 이동해서 설정을 켜 두면 된다 도구 > 옵션 > 프로젝트 및 솔루션 > 일반 > "솔루션 탐색기에서 활성화된 항목 추적" 을 체크하면 된다. 기본적으로 꺼져있기에 사용하는 사람이 적을 수는 있겠다만 알아두면 간혹 유용할 때가 있는 옵션이다.
[C#] ServiceController 클래스 관련해서 ServiceController네임 스페이스 : System.ServiceProcess (System.ServiceProcess.dll 임포트해야) 개인적으로 만드는 프로그램 중, 필수적인 서비스 (Database 등)가 실행중인지 아닌지 확인할때까 있습니다.이럴때 해당 서비스를 연결하거나 서비스 관련정보를 가져올때ServiceController라는 클래스가 존재한다는 걸 알게되었습니다. 일단 msdn의 내용을 일부 가져왔습니다. (링크) 속성 이름 내용 CanPauseAndContinue 서비스를 일시 중지했다가 다시 시작할 수 있는지를 나타내는 값을 가져옵니다. CanShutdown 시스템을 종료할 때 서비스에 알릴지를 나타내는 값을 가져옵니다. CanStop 시작한 서비스를 중지할 수 있는지의 여부..
[.Net C#] 열거형식, enum - 여러 상수 모아둘때 등 열거형 , enum : 여러 상수들을 정리및 모아둘때 지금 자바 웹 프로그래밍을 배우고 있는 와중에 아무래도 제 주력인 C#을 다시금 보고있습니다. Ex) 게임개발시 게임 캐릭터의 직업. 클래스를 관리하고자할때? // enum 타입 정의namespace ConEx08 {class Program {enum enmCharacter_class {FIGHTER , // 0부터 시작값을 가진다CLERIC ,ELF ,DWARF ,MAGIC_USER ,THIEF = 200 // 필요하면 상수별로 값을 다르게 지정할수도 있다} static void Main(string[] args) { Console.WriteLine("Fighter의 enum 값: " + (int)enmCharacter_class.FIGHTER);C..
[.Net C#] 올림, 내림, 반올림 (Ceiling, Truncate, Round) 올림, 내림, 반올림 (Ceiling, Truncate, Round) 개인적으로 프로그램을 만들다가 필요해서...System.Math 클래스에 포함된 함수들입니다. - 올림 : Math.Ceiling(double값)- 내림 : Math.Truncate(double값)- 반올림 : Math.Round(double값 [, 자릿수]) double n1 = 2.55d;double n2 = 2.44d; Console.WriteLine("Ceiling: n1= " + Math.Ceiling(n1) + ", n2= " + Math.Ceiling(n2)); Console.WriteLine("Truncate: n1= " + Math.Truncate(n1) + ", n2= " + Math.Truncate(n2)); // ..

반응형