c# 4

C# 메모리문제에 대해서#미해결

현제 제가 하고있는 게임 프로젝트에서 가장 큰 문제에 대해서 말해보도록 하겠습니다. (지금도 깔끔히 해결된 건 아닙니다.) C# 언어란게 메모리를 "자동"으로 처리해준다고들 하지만, 만약에 초당 백만번 또는 무수히 많은 메모리를 생성한다면? 그에대해 메모리는 폭풍같이 누수가 일어납니다. (이거땜에 제가 많이 힘들어 하고있는 부분입니다 :( ) 그럼 메모리를 삭제하면 되지 않나요?? 라는 생각을 가질텐데..그게 말이야 쉽지 실제론 제 수준에선 많이 어렵습니다. ㅜㅜ //위 캡처사진은 제가 만든 C#클라이언트가 C++ 서버한테 초당 3000번 패킷을 보내고 받는 과정과 이러한 이벤트를 끝낸후 메모리가 자동으로 다시 정리되는 사진이 되겠습니다. 그러다가 GC.Collect() 라는 것을 알게되서 일단 급한 불..

c# 2017.02.21

C# AutoResetEvent 를 이용한 쓰레드 제어

제가 공부를 하면서 여러개의 쓰레드를 작동 시키면 동시다발적으로 쓰레드 들이 움직이게 되는데 이것을 "주차장 차단기" 처럼 차례대로 움직이는 방법이 없을까 하다가 알게 되어 저만의 방식로 포스팅을 해보도록 하겠습니다. :D 쓰레드란, 프로그램이 매순간! 어떻게 흘러가는지 보여주는 것이라고 생각하시면 됩니다.한마디로 화면에 어떤것들이 움직이는 지와 그러한 것들이 어떤흐름으로 움직이는지 보여주는 것이라고 생각하면 이해하기가 좀더 수월하겠습니다. 예를 들면, 제가 공을 던지면 공이 움직이겠죠? 공이 직선이든 곡선이든 어떠한 방향으로 움직일텐데 이것을 쓰레드 라고 할 수 있습니다. 이 정도면 잘 이해 하셨을거 같습니다. :D 프로그래밍 하면서 쓰레드 라는게 정말 중요하고 잘 다뤄야 합니다. 아래 예시를 보고 한..

c# 2016.12.28

마샬링 구조체[] byte 오류에 대해서

안녕하세요 j.sieun 입니다. 이번글에는 제가 마샬링에 대해서 공부하면서 알게된 오류를 같이 공유하고자 오류에 대해 작성해보겠습니다. [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)] struct datapacket { //무조건 short 값으로 32767 public short size; public short type; [MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)] public char[] data; }제가 이런식으로 구조체를 만들었습니다. 그리고 구조체를 byte [] 로 바꾸고싶어서 public static byte[] Serialize(Object m_datap..

c# 2016.07.27

C++서버 C#클라 패킷 전송 (구조체 변환, 마샬링,object - byte[])

안녕하세요 j.sieun 입니다. 이번글에는 C++ 서버에서 C#클라이언트의 데이터 송,수신에 대해 적어보겠습니다. 조건 : 제가 사용하고있는 서버는 클라에서 byte로 형변환 한후에 보내는 형식입니다. 클라이언트에서 마샬링을 통해 struct 인 구조체를 byte로 변환한 후 서버로 send 해보겠습니다.제가 사용한 네임 스페이스는using System;using System.Runtime.InteropServices;using System.Net.Sockets;using System.Net; //구조체 생성 [Serializable] [StructLayout(LayoutKind.Sequential)] struct datapacket { //그렇게 크게 데이터를 전송할 필요가 없어서 short 값으로 ..

c# 2016.07.25