2009-05-20 3 views
2
Application.Run(form); 

사실 저는 이것을 내 프로젝트에서 호출하려고했습니다. 이 예외가 있습니다. 그것을 해결하는 방법? 내 프로젝트에서 이미 다른 Application.Run(frmBind);을 호출했습니다.이 예외를 처리하는 방법 : 잘못된 연산 예외

단일 스레드에서 두 번째 메시지 루프를 시작하는 것은 유효한 작업이 아닙니다. Form.ShowDialog를 대신 사용하십시오. 여기

try 
{ 
    // Application.Run(form); 
    form.ShowDialog(); 
} 

이 예외가 발생 : 내가 처음

에서 응용 프로그램을 호출 할 곳

static void Main(string[] args) 
{ 
    frmBind = new frmMain(); 

    Application.Run(frmBind); 

    //args1 = string.Copy(args); 
} 

이 지금 여기서 다시했다입니다.

form.Show(); 

을하거나 원하는 경우 새로운 형태의 모달 수 :

+1

코드 샘플을 게시 할 수 있습니까? – Galilyou

답변

7

이 어떻게 그것을 해결하는 방법을 말하고

form.ShowDialog(); 
+0

그 후에도 예외는 계속 발생합니다. – Arunachalam

+0

두 번째 Application.Run을 * 제거하고 대신이 코드를 사용해야합니다. –

+0

이 예외가 계속되는 경우에도 마찬가지입니다. 따라서이 질문은 – Arunachalam

4

에만 스레드에서 한 번 Application.Run를 호출 할 수 있습니다. Application.Run은 (다른 것들 중에서) 스레드에 대한 기본 메시지 루프를 설정하며, 그러한 루프는 하나만있을 수 있습니다. 이것이 예외를받는 이유입니다.

단순히 양식을 표시하려면 form.Show() 또는 form.ShowDialog()을 대신 사용하십시오. 이미 표시되어있는 양식에 대해 ShowDialog를 호출하면 InvalidOperationException도 throw됩니다 (다른 메시지와 함께).

+0

그 후에도 예외는 계속됩니다. – Arunachalam

+0

일부 코드를 보여줘야한다고 생각합니다. 그렇지 않으면 도움이 정말 힘듭니다. –

+0

ShowDialog를 호출 할 때 양식이 이미 표시되어있을 가능성이 있습니까? –

관련 문제