Programing/C#
-
c# 마샬링Programing/C# 2011. 7. 1. 15:05
[Serializable] [StructLayout(LayoutKind.Sequential, Pack = 1)] public struct PLCPS01{ public short SubHeader; public short DataLength; [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)] public char[] TransactionCode; public double EE020_WH; } public byte[] RawSerialize(Type dataType) // 구조체를 바이트배열로 { int RawSize = Marshal.SizeOf(dataType); IntPtr buffer = Marshal.AllocHGlobal(RawSize); Marshal..
-
DispatcherTimer 현재 시간 갱신Programing/C# 2010. 11. 5. 12:12
DispatcherTimer는 일종의 스레드객체이다. 아래는 현재 시간을 1초 단위로 갱신 해 주는 예이다.(라벨에 표시해주고 있다.) DispatcherTimer timer = new DispatcherTimer(); // 객체 생성 timer.Interval = new TimeSpan(1); // 인터발발생(1)초 단위로.. timer.Tick += new EventHandler(timerTick); // 호출 함수 timer.Start(); // 호출된 함수 void timerTick(object sender, EventArgs e) { this.NowTime.Content = System.DateTime.Now.ToLongTimeString(); }
-
c# 에서의 usingPrograming/C# 2009. 4. 24. 17:45
c# 에서의 using은 2가지 사용법이 있다. 첫번째는 다들 아시겠지만 네임스페이스사용.. using System; using System.Collections.Generic; 이런것들에 using이 사용되어 지는 것이고 두번째 사용은 자동 Dispose() 사용시 using문이 사용되어진다. 예를 들어보자 using(testGame = new TestPongGame (testLoop)) { testGame.Run(); } 위와 같은 문구가 있을때 { }안에 있는 모든 내용이 완료되어지면 동적으로 생성한 testGame개체에 대한 Dispose()문이 자동으로 불러지게 하는 역활을 using이 하는것이다.
-
추상클래스(Adstract Calss)Programing/C# 2009. 3. 29. 18:39
추상클래스는 미완성클래스로 스스로 객체 생성이 불가능한 클래스이다. 몸체가 없는 메서드를 포함하거나 abstract 키워드를 포함하는 클래스가 추상클래스가 되는데 이러한 추상클래스를 상속받는 새로운 클래스가 몸체없는 메서드 즉, 추상메서드들을 모두 채워넣어야 객체로 생성 할 수 있게 된다. 상속받은 클래스에서는 overrid키워드를 사용하여 메서드를 재정의하게 된다. 아래는 추상클래스를 이용하여 코딩하는 한 예이다. (출처 : http://www.jabook.com ) using System; public abstract class Shape{ public abstract void draw(); } public class Circle: Shape{//추상클래스의 구현 public override void..
-
Invoke() 메서드Programing/C# 2009. 3. 20. 16:01
윈도우 폼 위의 버튼을 누르다든가 마우스를 움직인다든가 하는 것의 모든 처리는 내부적으로 사용자의 이벤트에 의해 계속해서 스레드 처리하여 반응한다. 만약 다른 스레드가 직접 점근하게 되면 스레드 교차되었다는 에러 메시지를 내게 된다. 폼 스레드에 다른 스레드가 접근하여 폼 스레드가 처리하는데 방해를 받는다는 뜻이다. 이와 같이 스레드가 교차되는 것을 피하기 위해 폼의 이벤트 처리를 담아 놓는 메시지 큐에 처리 하고자 하는 이벤트를 넣게 되면 폼은 아무런 에러 없이 처리하게 된다. 바로 이렇게 해주는 것이 Invoke() 메소드이다. 즉 쓰레드 ------> 메시지 큐 -------> 윈도우 폼 으로 처리된다.
-
스트림(Stream)Programing/C# 2009. 3. 19. 21:18
스트림은 시냇물, 개울, 흐름이라는 뜻을 가지고 있다. 시냇물과 같이 출발지에서 목적지방향으로 흘러가는 데이터의 순차적인 흐름으로 이해하면 된다. C#에서는 모든 입출력이 Stream이라는 추상클래스를 통해서 이뤄진다. 1. FileStream 과 Encoding - 파일스트림 클래스는 파일 기반의 스트림을 처리하기 위해 스트림 추상 멤버들을 오버로드하여 구현하고 있다. 파일을 생서, 변경, 삭제등등을 할수 있는것이 바로 FileStream이다. 주요 속성으로는 1) FileMode : 파일의 존재여부를 파악. 2) FileAccess : 읽기 / 쓰기 여부 파악. 3) FileShare : 공유 여부를 결정 등이 있다. 스트림을 통해 전달된 데이터는 바이트(Byte)형태로 저장된다. 이 바이트들이 어떤..
-
스레드 사용하기Programing/C# 2009. 3. 19. 14:57
1. System.Threading 네임스페이스를 사용 2. public sealed class Thread : 스레드를 만들고, 제어하고, 우선순위를 정해주는 클래스 (상속금지) 3. ThreadStart 델리게이트 사용 : 스레드를 사용할 메서스를 참조할 수 있게 함 4. Sleep() 와 Suspend()메서드를 사용하여 활동중인 스레드 중지가능 sleep 는 지정된 시간이 지나면 깨어나지만, Suspend는 영원히 잠들어 버린다. 5. 멀티 스레드로 사용할 경우 가장 중요한점은 동기화부분이다. (Look) 6. IsBackground 속성은 백그라운드 스레드로 사용할 것인가를 묻는것으로 true인 경우 백그라운드 스레드가 되어 해당 메인 프로세스가 종료되면 함께 강제종료되는것이다. 7. Abort..