본문 바로가기

개발언어/C#191

[C#] Static함수에서 Form의 Control 조작하는 방법 Class를 add로 추가한 후 Form의 컨트롤들을 class에서 조작하는 간단한 방법에 대해 포스팅합니다. 다음과 같은 LoginForm 이 있습니다. namespace Greensul { public partial class LoginForm : Form { public LoginForm() { InitializeComponent(); } 중략 Form에 다음을 추가합니다. - public static LoginForm loginform; - loginform = this namespace Greensul { public partial class LoginForm : Form { public static LoginForm loginform; public LoginForm() { InitializeC.. 2021. 3. 5.
[C#] C#에서 멀티스레드에 안전한 구조 설계 이전글: C#에서 멀티스레드에 안전한 구조 설계(2) 이전글에서 설명한 안습한 결론에 좌절한 후, 좀 더 빠른 lock-free 구조체가 없을까 하고 뒤지던 도중 ConcurrentQueue라는 걸 발견했습니다. .net 4 이후 버전에서만 동작하고, 멀티스레드에 대해 안전하다고 하는군요. 설명은 아래 위치에서 볼 수 있습니다. http://msdn.microsoft.com/ko-kr/library/dd267265(v=vs.100).aspx Interlocked도 그렇고, C#은 역시 그냥 만들어 놓은거 가져다 쓰는게 최고인 언어인지라 그대로 적용해 보았습니다. public void request2() { queryQueue2.Enqueue(1); } public void update2() { int t.. 2021. 2. 17.
[C#] Queue VS ConcurrentQueue 알게된 배경 UDP통신을 수신해야 하는데, 스레드 하나로는 프로그램의 성능을 올릴 수 없으니 당연히 멀티 스레드로 처리를 해야한다. (이는 UDP 프로토콜은 오버플러워되거나 에러가 난 패킷은 가차없이 폐기 처분하기 때문에 발생되는 문제를 막기 위함이다.) 문제는 이런 스레드가 작동되는 영역들간에 데이터 공유혹은 전달 할 수 있는 자료가 필요로 하게 된다. 이를 사용할 자료구조가 Queue였다. 물론 링크리스트로도 충분히 구현을 할 수 도 있다. 큐의 개요 많이 비교되는 자료구조는 스택이다. 스택은 먼저들어간게 나중에 나오는 구조(FILO or LIFO)인데 반해 큐는 들어간 순서대로 나오는 실제 세게에서 줄 서 있는 것과 같다. 추상적으로 생각을 하면, 우리가 일상중 머릿속에서 작업스케줄을 짜는 것과 같.. 2021. 2. 17.
[C#] Queue, ConcurrentQueue 기본사용법 Thread에서 안전한 Queue인 ConcurrentQueue의 기본 사용법을 적어본다 1. Queue 선언. 2. 값 삽입. 3. 내용을 한번 확인 해보고, 4. 값 가져오면서 큐 안의 내용을 삭제 한다. 5. 가져오고 난 후의 큐 안의 갯 수를 확인해 보고, 6. 마지막으로 큐 안의 값을 확인 하는 방법을 적어보고 끝~ 출처: https://mongyang.tistory.com/117 [웃어라 온 세상이 너와 함께 웃을것이다.] 스레드 안전 ConcurrentQueue 컬렉션 사용 C# ConcurrentQueue는 스레드 세이프 퍼스트 인퍼스트 아웃(FIFO) 컬렉션이다. 다음 예제는 ConcurrentQueue를 사용하여 항목을 enque 및 dequeue하는 방법을 보여준다. using Sys.. 2021. 2. 17.
[C#] winform 색상표 https://docs.microsoft.com/ko-kr/dotnet/api/system.windows.media.colors?view=netcore-3.1 2021. 2. 5.
[C#] 리스트뷰 이미지리스트 https://docs.microsoft.com/ko-kr/dotnet/api/system.windows.forms.listview?view=net-5.0 ListView 클래스 (System.Windows.Forms) Windows list view 컨트롤을 나타냅니다. 이 컨트롤은 네 개의 서로 다른 보기를 사용하여 표시할 수 있는 항목의 컬렉션을 나타냅니다.Represents a Windows list view control, which displays a collection of items that c docs.microsoft.com 2021. 1. 20.
[C#] FolderBrowserDialog 이용하여 폴더 선택 및 정보 가져오기출처: [BeomBeomJoJo - Programmer] 안녕하세요. 오늘은 C#에서 폴더를 선택하고 그 폴더에 대한 정보를 가져오는 방법에 대해서 알아보려고 합니다. 바로, FolderBrowserDialog를 이용하여 폴더 선택 및 정보를 가져올 수 있는데요. 예제 코드를 통해서 알아 보도록 하겠습니다. 우선 윈폼 기본 프로젝트를 생성해 주시기 바랍니다. 그리고 도구상자에서 Button 컨트롤 하나를 다음과 같이 배치하여 주시기 바랍니다. 윈폼 프로젝트 생성 및 Button 컨트롤 배치 여기서 이제 해당 가운데에 “FOLDER” 버튼을 클릭했을 때, 폴더 선택 창이 나오도록 소스코드를 작성해 보도록 하겠습니다. using System; using System.Collections.Generic; using System.ComponentModel; using.. 2021. 1. 19.
[C#] string.format 예제 int 예제 Add zeroes before number String.Format("{0:00000}", 15); // "00015" String.Format("{0:00000}", -15); // "-00015" Align number to the right or left String.Format("{0,5}", 15); // " 15" String.Format("{0,-5}", 15); // "15 " String.Format("{0,5:000}", 15); // " 015" String.Format("{0,-5:000}", 15); // "015 " Different formatting for negative numbers and zero String.Format("{0:#;minus #}", 15.. 2021. 1. 19.
[C#] 파일 및 디렉터리 생성, 삭제, 복사, 존재여부 검사 등 C#에서 디렉터리나 파일을 읽고 쓰고 하는등에 클래스에 대해서 알아보자. 1. 디렉터리 존재여부 알기 네임스페이스 using System.IO 를 포함시키고 System.IO.Directory.Exists(string path) 함수를 사용하면 된다. 함수에 이름이 너무 길다면 using static System.IO.Directory; 를 하면 Exists() 만을 사용하면 된다. 아래 예제를 보자. 해당 디렉터리가 있는지 검사하는 예제이다. using System; using System.IO; using static System.IO.Directory; namespace TEST { class Program { static void Main(string[] args) { string dir = @".. 2021. 1. 19.
[C#] 파일 이름, 확장자, 크기(용량), 수정 일자, 속성 등 알아내기 C#에서 파일 이름, 확장자. 크기, 수정일자 등을 알아낼 수 있습니다. 1. 파일 이름, 확장자 출력 네임스페이스 using System.IO를 포함시켜줍니다. Path 클래스를 사용하면 아래 예제처럼 파일이름을 알 수 있습니다. 이외에도 Path에는 임시폴더를 만들거나 랜덤으로 이름과 확장자를 만들 수도 있습니다. using System; using System.IO; namespace TEST { class Program { static void Main(string[] args) { string file = @"C:\test\aaa.txt"; System.Console.WriteLine($"파일이름+확장자 : " + Path.GetFileName(file)); System.Console.Write.. 2021. 1. 19.