2012-02-21 1 views
0

새 스레드에서 창을 열어야하는데 스레드를 STA 또는 MTA로 표시해야하는지 궁금합니다. 스레드 풀 스레드가 MTA로 실행된다는 것은 알고 있지만 일반적으로 UI 요소와 관련이 없습니다. winforms 창을 STA로 실행해야합니까?새 스레드에서 실행되는 winforms 창에 STA 또는 MTA 아파트 상태를 사용해야합니까?

+1

관련 항목 : http://stackoverflow.com/questions/4344835/cant-start-winform-from-a-thread. 짧은 대답 :하지 마. 사용자는 어쨌든 한 번에 하나의 양식 만 조작 할 수 있습니다. 백그라운드에서 실행중인 프로세스가 필요하다면 스레드를 돌려서 처리하거나 'BackgroundWorker'객체를 사용할 수 있습니다. –

+0

창을 만드는 스레드 *는 STA 여야합니다. 클립 보드, 끌어서 놓기 및 셸 대화 상자에는 STA가 필요합니다. –

답변

2

이 질문에 대한 correct answer을 살펴보고 STA와 MTA에 대해 설명합니다.

winforms 창에 관계없이 STA로 실행하는 것이 좋습니다. 그렇지 않으면 컴파일하지 않아도 정의되지 않은 동작 영역으로 실행됩니다.

관련 문제