필름스피커!?

관심거리 2008/03/29 10:20 posted by isili
http://10x10.co.kr/designfingers/designfingers.asp?fingerid=489

미치겠어..

엄청 사고 싶어..

필름 스피커라니...

닌텐도 위도 사야되는데...

덜덜덜... 살건 많아.. ㅋㅋㅋㅋ

최근에 차드 파울러의 사랑하지 않으면 떠나라! 라는 책을 보고 있습니다.

진득허니 보고 있지는 못하지만 ( 사실 핑계 )

이런저런 생각을 하게 만드는 부분이 있어 이렇게 포스팅을 하네요.

스스로를 자바 프로그래머라 칭하면서
"순수 자바로 자바 가상 머신을 깨는 프로그램을 제작하라"
이런 질문에 틀린 대답조차 하지 못하는 사람들이 많다고 하네요-0-;;

사실 나도 C#으로 프레임워크를 부수는 코드를 작성하라 이럴경우 ..
그냥 웃을수도.. 사실 생각해보면 아직 프로그래머라 칭하기 어려운 수준이니..

 JVM이 메모리를 어떻게 관리하는지 클래스 로더가 어떻게 동작하는지 알지 못하는
분(?)들이 스스로를 전문가라고 칭하는 것에 대한 비난!?을 적어놓았는데

속으로 계쏙 뜨끔뜨끔뜨끔..

아 공부할거 정말 많군요..

일딴 내일은 닷아시아 엔진이나 정비를... ㅋ
 

C# Thread DataGridView Invoke.

C# 2008/03/14 11:42 posted by isili

c# 윈도우 프로그래밍에서 DataGridView를 윈도우 위에 올려 놓고.

메인 스레드에서 새로운 쓰레드=t1 생성 후에

t1에서 그리드 뷰를 연신 Clear 했더니......

간헐적으로 에러가 나는게 아니겠습니까..

그래서 Debug 모드로 실행을 시켰더니..

친절하게

방법: 스레드로부터 안전한 방식으로 Windows Forms 컨트롤 호출

이런 도움말을 뽑아 주더라구욤.

에러가 발생한 원인은

.NET Framework에서는 사용자가 스레드로부터 안전하지 않은 방식으로 컨트롤에 액세스할 경우 이를 감지할 수 있습니다. 디버거에서 응용 프로그램을 실행할 때 컨트롤을 만든 스레드가 아닌 스레드에서 해당 컨트롤을 호출하려고 하면 디버거에서 InvalidOperationException을 발생시키고 "컨트롤 이름 컨트롤이 자신이 만들어진 스레드가 아닌 스레드에서 액세스되었습니다."라는 메시지를 표시합니다.

-> 아래와 같은 상황도 첨부되어 있습니다. 그러니까 프레임워크 2.0 이하 버전에서는 이런 예외가 발생하지 수 있다는 말이군요.

이 예외는 일부 환경에서 런타임에 디버깅하는 동안 안정적으로 발생합니다. 이 예외가 발생할 경우 문제를 수정하는 것이 좋습니다. 이 예외는 .NET Framework 2.0 이전 버전에서 작성한 응용 프로그램을 디버깅할 때 발생할 수 있습니다.

이제 저런 문제는 어떻게 처리하는가!?!?

스레드로부터 안전한 방식으로 Windows Forms 컨트롤 호출

스레드로부터 안전한 방식으로 Windows Forms 컨트롤을 호출하려면

1.컨트롤의 InvokeRequired 속성을 쿼리합니다.

2. InvokeRequired가 true를 반환하는 경우에는 컨트롤을 실제로 호출하는 대리자를 사용하여 Invoke를 호출합니다.

3. InvokeRequired가 false를 반환하는 경우에는 컨트롤을 직접 호출합니다.

좀 더 자세한 정보는
http://msdn2.microsoft.com/ko-kr/library/ms171728.aspx 

EX DataGridView Clear ,add 예제 )

 delegate void DelegateThreadClaer();
        private void GridViewClear()
        {
            this.BoardGridView.Rows.Clear();
        }
  delegate void DelegateThreadAdd(string [] row);
        private void GridViewAdd(string[] row)
        {
            this.BoardGridView.Rows.Add(row);
        }

 if (this.BoardGridView.InvokeRequired)
     {
       DelegateThreadClaer del = GridViewClear;
       this.BoardGridView.Invoke(del);
       }
  else
   {
       BoardGridView.Rows.Clear();
    }
  if (this.BoardGridView.InvokeRequired)
    {
       DelegateThreadAdd add = GridViewAdd;
       this.Invoke(add,new object[]{row});
    }
   else
   {
       BoardGridView.Rows.Add(row);
   }

이런게 사용자 경험!?!?!?!?

관심거리 2008/03/08 15:09 posted by isili

웹 개발하던 중 flex의 필요성을 느껴서

flex builder를 다운받으려고 찾아보았더니....

flex builder 2 학생에겐 공짜!? 라는 말을 듣고 관련 사이트에 찾아가 보았습니다.

http://www.flexregistration.com/

 등록을 하려고 보았더니..
이메일을 반드시 입력해야 되더라구요..

그래서 이메일을 적는 박스에 포커싱을 잡으니까.. 제가 예전에 적어 놓았던 이메일들이 자동완성(익스플로러 기본기능) 되는게 아니겠습니까...

그래서 손쉽게 방향키로 이메일을 입력했죠.

소스를 살펴보았더니 <input name="email"> 이런 느낌으로 들어가 있더라구요..

사실 별거 아닐수도 있지만...

한명의 씌뤠기 개발자로써 많은 생각이 드네염..

만약 저라면 <input name="text2"> 이딴 식으로 처리했을 수도...ㅋㅋㅋ



한국 마이크로소프트 조성우 과장님의 열연이십니다..ㅋㅋㅋㅋㅋㅋ

김현중은 북한군 1로 출연했습니다. ㅋ