씨샵으로 폼없이 화면에 직접 텍스트를 뿌려주는기능을 테스트 중입니다
이전에 집어넣어줬던 스트링이 계속 화면에 남아서 무한루프로 실험해보니까 메모리 사용량이 조금씩 꾸준히 올라가네요
GC도 동작하지않고요
코드입니다
private const int DCX_WINDOW = 0x00000001;
private const int DCX_CACHE = 0x00000002;
private const int DCX_LOCKWINDOWUPDATE = 0x00000400;
[DllImport("user32.dll")]
private static extern IntPtr GetDesktopWindow();
[DllImport("user32.dll")]
private static extern IntPtr GetDCEx(IntPtr hwnd, IntPtr hrgn, uint flags);
public static void TestDrawingOnDesktop(String s)
{
IntPtr hdc = GetDCEx(GetDesktopWindow(), IntPtr.Zero, DCX_WINDOW | DCX_CACHE | DCX_LOCKWINDOWUPDATE);
using (Graphics g = Graphics.FromHdc(hdc))
{
StringFormat sf = new StringFormat();
sf.LineAlignment = StringAlignment.Center;
sf.Alignment = StringAlignment.Center;
g.DrawString(s, new Font("굴림", 50F), Brushes.Red, 1000, 1000);
g.ReleaseHdc(g.GetHdc());
}
}
public static void Main(String[] args)
{
int count = 0;
while(true)
{
count++;
TestDrawingOnDesktop(count.ToString());
}
}
또 이게 한번 그리고 화면에 변화가 생기면 해당 부분이 지워져버리는데 이문제는 어떻게 해결하는지 알고싶습니다