비동기 소켓 클라이언트가 있는데 패킷이 도착하면 새 양식을 열어서 처리해야합니다.스레드에서 새 양식을 열려면 어떻게해야합니까?
그러나 스레드에있는 것처럼 새 양식이 중단되어 응답하지 않습니다.
비동기 콜백으로 새 양식을 만들고 열 수 있습니까?
비동기 소켓 클라이언트가 있는데 패킷이 도착하면 새 양식을 열어서 처리해야합니다.스레드에서 새 양식을 열려면 어떻게해야합니까?
그러나 스레드에있는 것처럼 새 양식이 중단되어 응답하지 않습니다.
비동기 콜백으로 새 양식을 만들고 열 수 있습니까?
Dispatcher를 사용하여 백그라운드에서 UI 스레드로 전환하십시오. 당신이 당신의 배경 스레드가 양식을 작성하고 표시 될 때까지, 호출()를 사용하여 대기하는 경우
//This has to be done on the UI-Thread, before calling the async method
var dispatcher = Dispatcher.CurrentDispatcher;
//Now, in your async callback, do something like this
private void AsyncCallback(IAsyncResult result){
dispatcher.Invoke(new Action(() =>
{
//Create your form Here
}
}
, 다른, 사용은 비동기 콜백이 호출 할 수 있도록
당신은 응용 프로그램의 기본 폼에 대한 참조를 필요로 시작 BeginInvoke() 메서드를 호출하고 UI 스레드에서 코드를 실행합니다. Application.OpenForms [0]을 사용할 수는 있지만 권장하지 않습니다. –