소리소문 없이... 사랑도 명예도 이름도 남김 없이...
DexCore.net

C# 257

C# 에서 Timer 사용할 때 주의할 점.

Windows Forms 개발을 하는데, 주기적 (대략 1분)으로 데이터 요청을 하는 프로그램을 작성하기 위해서 Timer 를 사용하는데, 어떤 기능을 처리해야 하기 때문에 Sleep 을 같이 사용했다고 한다. 여기서 발생하는 문제는 Sleep 5초를 주었더니, Timer 까지 5초 동안 멈춘다는 것이다. Timer 라는 것은 기본적으로 시간의 흐름을 측정하는 기능이기 때문에 Sleep 을 했다고 해서 Timer 가 멈추는 일은 생겨서는 안된다. 그러나 실제 샘플을 만들어 보면 ... Timer 가 Sleep 만큼 동작이 멈추는 것을 확인할 수 있다. Windows Forms 는 UI Thread 를 사용하는 것으로 최적화 되어 있으며 여기서 Timer 를 쓰면 UI Thread 에 최적화된 System..

C# 2017.01.02

세가지 Timer 와 그 차이점

특정 작업을 주기적으로 실행하기 위해 흔히 Timer 객체를 사용합니다정해진 시간 간격으로 변수를 업데이트 한다던지, 모니터링 한다던지, 로그를 기록 한다던지, 그 작업 내용은 무궁무긴 하겠죠Timer 객체는 이러한 주기적 작업을 아주 쉽게 처리해 주는, 닷넷 프레임워크에서 제공하는 고마운 객체입니다 그러나 한가지 생각해 볼 문제가 있네요..닷넷 프레임워크에는 무려 3가지 서로 다른 Timer 를 제공하고 있다는 겁니다. 바로 아래 3가지 Timer 입니다 1. System.WIndows.Forms.Timer 2. System.Threading.Timer3. System.Timers.Timer 닷넷이 이 3가지 Timer 를 각각 제공하는 이유가 무엇일까요?필자는 이 문제(?)에 대해, 몇 년전에 의구심..

C# 2017.01.02

듀얼 모니터에서 WPF Window 배치하기

듀얼 모니터에서 WPF Window 배치하기 듀얼 모니터에서 WPF의 창을 배치하기 위해서는 약간의 꼼수가 필요하다. 기존의 닷넷 프로그래밍에서는 System.Windows.Forms.SystemInformation.MonitorCount를 이용해서 현재 시스템에 장착된 모니터의 갯수를 알 수 있었다. 또 해당되는 모니터의 상세한 정보를 얻고자 할 경우에는 System.Window.Forms.Screen.AllScreens[index].WorkingArea;와 같이 해당되는 모니터의 정보를 알아낼 수 있었다. 하지만 WPF에서는 기본적으로 모니터와 관련된 속성이나 기능을 추가로 제공되지 않는 것 같다. 실제로 몇몇 경우에는 듀얼 모니터를 활용하는 경우가 많고 또 개발시에도 듀얼 모니터를 이용하는 경우가 ..

C# 2016.12.14

명명 규칙 (Naming Rule)

명명 규칙 (Naming Rule)개발 업무시 각 개발 요소에 대한 이름으로 명명 규칙(Naming Rule)을 준수함으로써 코드의 완전성과 가독성을 향상시키고 명확한 의미 부여를 생산성을 높힐 수가 있습니다. 1. 명명 규칙 준수를 통한 업무 생산성 효과 - 일종의 규약을 설정하여 프로젝트 개발자 및 구성원 들간의 원활한 업무적 의사소통 가능 - 업무 단계별 산출물 사이의 일관성 유지 - 명확한 의미 부여로 산출물 사이의 연관성 및 코드 가독성을 높힘 2. 명명 규칙 준수시 공통 사항 - 업무 영역에 적합하고 연관되게 정의된 용어를 사용 - 같은 유형의 요소에 대해서는 혼동을 방지하기 위해, 유사 명칭이나 대소문자만 다른 같은 명칭 사용 금지 3. 대소문자 혼용 - 여러 개의 단어로 이루어진 이름의 경..

C# 2016.10.06

시간 구하기 Ticks

C#에서 시간값을 구할 때는 DateTime class를 이용하는데, 좀 더 정밀한 시간을 구하고 싶으면 Ticks를 살펴보면 된다. Ticks의 단위는 1/10,000,000초 (천만분의 일 초)로 원하는 시간단위로 변환해서 사용하면 된다. 1틱은 100나노초(천만분의 1초)를 나타냅니다.1밀리초는 10,000틱입니다.이 속성의 값은 DateTime.MinValue를 나타내는 0001년 1월 1일 12:00:00 자정 이후 경과된 100나노초 간격의 수를 나타냅니다.윤초로 인한 틱 수는 포함하지 않습니다. [출처] C# : DateTime.Ticks 속성 , TimeSpan으로 시간간격 구하기|작성자 골드러쉬 DateTime centuryBegin = new DateTime(2017, 1, 1); Da..

C# 2016.07.12

.NET CLR Project 만들기 샘플(음력/양력변환)

1. 새 프로젝트로 데이터베이스의 SQL CLR 프로젝트로 만듭니다. 2. 이 때 SQL 연결설정을 해 주셔야 합니다. SQL Server Project는 SQL 2005 이상이어야 합니다. 3. 프로젝트를 생성하면 클래스가 나옵니다. 이 때 다음과 같이 .NET Code를 넣어주시면 됩니다. 음력/양력 변환 소스인데요. 원리는 여러 군데 게시판에 있으니 설명을 생략하겠습니다. using System;using System.Data;using System.Data.SqlClient;using System.Data.SqlTypes;using Microsoft.SqlServer.Server;using System.Globalization; public partial class UserDefinedFuncti..

C# 2016.02.26

파일 사용중인지 확인

/// /// 파일이 다른 프로세스에 의해 사용중인지 점검/// /// 파일경로/// 사용중이면 잠시 기다릴 시간/// 사용중이면 truepublic static bool IsFileLocked(string filePath, int secondsToWait){ bool isLocked = true; int i = 0; while (isLocked && ((i < secondsToWait) || (secondsToWait == 0))) { try { using (File.Open(filePath, FileMode.Open)) { } return false; } catch (IOException e) { var errorCode = System.Runtime.InteropServices.Marshal.Get..

C# 2016.02.25

IP Address, MAC Address 구하기

/// /// 로컬 IP를 구해온다./// /// 랜카드 인덱스/// IPpublic static string GetLocalIp(int index){ return System.Net.Dns.GetHostEntry(System.Net.Dns.GetHostName()).AddressList[index].ToString();} /// /// 첫번째 로컬 IP를 구해온다./// /// IPpublic static string GetLocalIp(){ return GetLocalIp(0);} /// /// IP Address에 해당하는 Mac Address를 가져온다./// /// 찾고자 하는 IP Address/// Mac Addresspublic static string GetMacAddress(string..

C# 2016.02.25
728x90
반응형