안녕하세요.
제가 지금 통신서버SW를 한개 만들고 있는데요.
하도 원인을 못 찾아서 이렇게 한번 여쭈어봅니다. ^^
1. 증상:
시리얼 통신서버쪽인데요. 8군데 정도 시리얼포트와 연결되어서 각각 신호에 맞게 반응만 하면 되는 SW인데요.
개발환경은 C#, 닷넷4.0 입니다. 기본 VS2012에 있는 걸로 작업을 했었고, 시리얼통신lib도 vs2012내부에 있는
것으로 작업을 했습니다. 시리얼은 각각 한개씩 thread를 배정을 했고요.
화면은 listbox로 개별로 올라오는 데이타에 맞게 화면에 갱신합니다.
일단 콘솔에서는 이상없이 잘 동작이 되고, 화면 갱신도 잘 됩니다.
이런 상태에서 원격으로 해당 서버에 접속을 하면 화면이 딱 멈춰버립니다.
그 뒤로는 콘솔로 로긴해도 역시 화면이 멈춘채로 있습니다.
물론 내부 개별 thread는 잘 동작되고 있습니다.
외부에서 보이는 화면UI가 죽은 것 같은데요.
원격으로 접속한다고....이런 경우도 있나요?
서버SW라서 외부에서 관리차원에서 접속해서 작업해야 되기 때문에 꼭 되어야 되는 기능이라서.. ^^
오늘 하루종일 이것 가지고, 계속 인터넷 검색중인데..도저히 못 찾겠네요.
서버SW와는 별개로 테스트용으로 만든 시리얼 시뮬레이터 SW는 (서버SW와 기본코드는 동일합니다.)
대충 화면을 만들고 했는데..이건 잘 동작하네요.
뭐가 문제인지 모르겠습니다.
코드 vs 코드로 비교해보고 있지만.... 전혀..감이 안 잡힙니다. ^^
±×ÀÌ»óÀÏ °æ¿ì¿¡´Â UI Thread 󸮸¦ ÇØÁÖ¼Å¾ß µÉµíÇÕ´Ï´Ù.
¾Æ·¡´Â ¿¹Á¦ ÄÚµåÀÔ´Ï´Ù.
this.Invoke(new Action(delegate()
{
ÆûÄÁÆ®·Ñ.Text = "UI Thread¿¡¼ ó¸®µÇ°Ô ÇÑ´Ù";
}));
UI THREAD ¹®Á¦´Â ¾Æ´Ñ °Í °°¾Ö¿ä.
¸ÖÂÄÈ÷ Àß µ¹¾Æ°¡°í Àִ ȸéÀ» ¿ø°ÝÀ¸·Î Á¢¼ÓÇß´Ù°í..¾È µ¹¾Æ°¡´Â °æ¿ì¶ó¼...
Àúµµ ÀÌ·± °æ¿ì°¡ óÀ½À̶ó¼... ´çȲÇÏ°í ÀÖ¾î¿ä.
¾ÈµÇ¸é¸Ó.... »õ ÇÁ·ÎÁ§Æ® ÇÑ°³ ¸¸µé¾î¼ ÇÑÁÙ¾¿ Çѹø ¿Å°ÜºÁ¾ßÁÒ ¸Ó..
°¨»çÇÕ´Ï´Ù.
°°Àº ÇÔ¼ö¸¦ ÄÝÇؼ »ç¿ëÇÏ°í ÀÖ½À´Ï´Ù.
pbTime.BeginInvoke(new Action(() => pbTime.Load(GreenCircleImage.ToString())));
¿ä·¸°Ô Çؼ ¸ðµÎ invoke·Î ó¸®Çß½À´Ï´Ù.
À̹ÌÁö °»½ÅÀ̶û ¿ø°ÝÁ¢¼ÓÀ̶û ¹®Á¦°¡ ÀÖ³ª¿ä?
¿øÄ¢ÀûÀ¸·Î´Â À̹ÌÁö°¡ °»½ÅµÈ´Ù¸é Paint À̺¥Æ® 󸮸¦ ÇØÁÖ´Â°Ô ¸Â½À´Ï´Ù.
ÇØ´ç ¹öÆ°¿¡ Paint À̺¥Æ® 󸮸¦ ÇØÁຸ¼¼¿ä. (Æû¿¡µµ ÇØÁÖ´Â°Ô ÁÁÀ» °Í °°±ä ÇÕ´Ï´Ù)
´ëÃæ Àǽɽº·¯¿î °÷µµ ÇÑ°÷ ¹ß°ßÇß½À´Ï´Ù.
³»ÀÏ°¡¼ È®ÀÎÇغÁ¾ßµÉ µí ÇÕ´Ï´Ù.
ÁñÀáÇϼ¼¿ä. ^^
Àú´Â ¾²·¹µå¿¡¼ sendmessage ·Î ½÷ ÁÖ°í WndProc ¸¦ ¿À¹ö¶óÀ̵å Çؼ ¹Þ¾Æ ¾²´Â °ÍÀÌ ¾î¶³ ¶© ´õ ÆíÇÏ°í ¾ÈÁ¤ÀûÀÎ ´À³¦ÀÌ µé¾ú½À´Ï´Ù.
ÇÊ¿ä¿¡ µû¶ó¼± sendmessage ¸»°í sendmessageEx ³ª postmessage·Î ½î´Â °Íµµ...
ÀÏ´Ü ¹®Á¦´Â °ø¿ëclassÂʹ®Á¦¿´½À´Ï´Ù. sendmessage ·Î Á¤¸®Çϴϱî..º° ÀÌ»ó¾øÀÌ Àß µ¹¾Æ°©´Ï´Ù.
°¨»çÇÕ´Ï´Ù.
IPC Åë½ÅÂÊÀÌ¿´³×¿ä. sendmessage win_proc°°Àº °ÍÀ» °ø¿ëÀ¸·Î »ç¿ëÇÏ·Á°í °ø¿ëclassÂÊ¿¡ form À» »ó¼Ó¹Þ°Ô ¸¸µé¾î¼..
º» ÇÁ·Î±×·¥ÂÊ¿¡¼± ±×³É Ŭ·¡½º ¼±¾ð¸¸ ÇÏ´Â °ÍÀ¸·Î ±ò²ûÇÏ°Ô ¸¸µé¾ú´Âµ¥..
ÀÌ°Ô ¹®Á¦¿´³×¿ä. Äֿܼ¡¼´Â Àß µ¿ÀÛÇؼ ±¦Âú´Ù°í ³Ñ¾î°£ °ÍÀÌ¿´´Âµ¥..
¸ÞÀÎÂÊÀ¸·Î ¿Å°Ü¼ sendmessage¸¦ ´Ù½Ã Á¤¸®Çϴϱî..Àß µ¹¾Æ°©´Ï´Ù.
°¨»çÇÕ´Ï´Ù. ^^