달력

5

« 2025/5 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
2014. 5. 16. 15:00

[C#]CrossThread 처리방법 학습/C#2014. 5. 16. 15:00

Cross Thread란

MainThread가 돌게되면서 다른 Control의 값 변경을 하려할때 되는 문제이다.



나는 프로그램을 돌리면서 ListBox에 결과값을 추가시키려 하여 발생한 문제였다.

내가 해결한 방법은

전역변수에 Delegate를 선언하고 ListBox에 Item을 추가시켜주는 메소드를 만들어서 해결하였다.


private delegate void SetListBoxCallback(string msg);

이런식으로 전역변수에 Delegate를 선언해주고


ListBox에 Item을 추가시켜줄 메소드를 하나만들었다.


private void SetListBox(string msg)             //crossThread방지를 위해 델리게이트선언

        {

            if (this.lb_result.InvokeRequired)

            {

                SetListBoxCallback setlistboxcallback = new SetListBoxCallback(SetListBox);

                this.Invoke(setlistboxcallback, new object[] { msg });

            }

            else

            {

                lb_result.Items.Add(msg);

            }

        }



SetListBox(string.Format("trid : {0} {1}", id, retVal ? "성공" : "실패"));

그리고 결과값을 추가시켜줄땐 메소드를 불러서 그 메소드가 Item을 Listbox에 추가시켜주게 하여 해결하였다.


'학습 > C#' 카테고리의 다른 글

IIS ApplicationPool 제어하기  (0) 2017.02.28
[C#]Tray 적용하기  (1) 2014.06.13
:
Posted by 쩡용
2014. 5. 15. 12:47

MVC패턴 개념(Model-View-Controller) 학습/ASP.NET2014. 5. 15. 12:47

MVC는 Model View Controller의 약자로 아키텍쳐 패턴이며 개발방법론이다.

사용자 인터페이스로부터 비지니스로직을 분리하여 

애플리케이션이 시작적 요소나 그 이면에서 실행되는 비즈니스 로직을 서로 영향없이 쉽게 고칠수있다.







[MVC 개념도]

View는 Controller에게 명령을 한다.

Controller는 Model에게 명령을 한다.

Model은 받은Data를 처리후 View에게 넘겨준다.


예를들어 학생관리 프로그램을 만든다고 하였을때

Student, StudentManager, StudentHelper 총 3개의 클래스를 만들었다.

Student클래스는 학생 개체를 만듬으로써 Model부분이되고

StudentManager클래스는 사용자와 직접 대면하는 UI로 View 부분이 되고

StudentHelper클래스는 학생을 추가하거나 정보를 수정하는걸로 Controller부분이 된다.



Controller부분인 StudentHelper클래스에는 DeleteStudent,InsertStudent,ModifyStudent메소드를 가지고있으며 학생 삭제,추가,수정의 동작을 하여 StudentManager클래스에서 요청받은 자료를 수행한다.

View부분인 StudentManager클래스에는 InitStuManager,Run,StudentInfoList메소드를 가지고있으며 Student클래스에서 개체를 요청하여 사용자에게 보여주는 동작을 한다.

Model부분인 Student클래스에서는 학생의 개인정보만 가지고있다.


위에서 보듯이 MVC패턴의 원리는

사용자가 View를 통하여 어플리케이션을 접하게되고 사용자의 조작에의해서 Controller에게 이벤트 요청을 하고 Controller는 해당이벤트에대해 Model을 참조하고 Model은 Data를 처리하여 결과를 다시 View에게 전달을 하게된다.

:
Posted by 쩡용