C++ C++;UI调用不工作

C++ C++;UI调用不工作,c++,multithreading,winforms,visual-studio-2013,clr,C++,Multithreading,Winforms,Visual Studio 2013,Clr,调试时,我发现我的程序在调试后已停止 myServer->Invoke(myServer->myShowMessage) 我试图找到它的去向,我设置了几个中断,但没有找到它的去向。然而,我也在ShowMessageMethod上设置了一个中断,它应该去哪里,但我确信它不会去那里。这看起来就像是在处理其他事情并被困在其中。我怀疑UI线程出了问题,但我对Windows消息中的底层内容知之甚少。我在主线程中创建了一些其他线程,这会使事情变得不同吗?我只是遵循了msdn上的Invoke方法代码。这是我的

调试时,我发现我的程序在调试后已停止

myServer->Invoke(myServer->myShowMessage)

我试图找到它的去向,我设置了几个中断,但没有找到它的去向。然而,我也在ShowMessageMethod上设置了一个中断,它应该去哪里,但我确信它不会去那里。这看起来就像是在处理其他事情并被困在其中。我怀疑UI线程出了问题,但我对Windows消息中的底层内容知之甚少。我在主线程中创建了一些其他线程,这会使事情变得不同吗?我只是遵循了msdn上的Invoke方法代码。这是我的密码:

Server::Server(){
        InitializeComponent();
        myShowMessage = gcnew ShowMessageDelegate(this,&Server::ShowMessageMethod);
    }

System::Void Server::start_Click(System::Object^  sender, System::EventArgs^  e){
        Thread^ myThread = gcnew Thread(gcnew ThreadStart(this,&Server::ListenThreadFunc));
        myThread->Start();
    }

void Server::ShowMessageMethod(){
        String^ message = "Get Successful";
        this->APTBX->AppendText(message);
    }

void Server::ListenThreadFunc(){
        ServerListen^ mySL = gcnew ServerListen(this);
        mySL->ListenThread();
    }

ServerListen::ServerListen(Server^ _s){
        myServer = _s;
    }

void ServerListen::ListenThread(){
        array<Object^>^myStringArray = { convert.toStringDelegate(information) };
        Object^ re = myServer->Invoke(myServer->myShowMessage);
    } 
Server::Server(){
初始化组件();
myShowMessage=gcnew ShowMessageDelegate(this,&Server::ShowMessageMethod);
}
系统::无效服务器::开始\单击(系统::对象^sender,系统::事件参数^e){
线程^myThread=gcnew-Thread(gcnew-ThreadStart(this,&Server::ListenThreadFunc));
myThread->Start();
}
void服务器::ShowMessageMethod(){
字符串^message=“获取成功”;
此->APTBX->追加文本(消息);
}
void服务器::ListenThreadFunc(){
ServerListen ^mySL=gcnewserverlisten(this);
mySL->ListenThread();
}
ServerListen::ServerListen(服务器){
myServer=\u s;
}
void ServerListen::ListenThread(){
数组^mystringray={convert.toStringDelegate(信息)};
对象^re=myServer->Invoke(myServer->myShowMessage);
} 

提前谢谢。

对我来说似乎是个僵局。您可以尝试更改
对象^re=myServer->Invoke(myServer->myShowMessage)
myServer->ShowMessageMethod()
?现在也停止了吗?这不是你问题的答案,但应该让我们更深入地了解正在发生的事情。它没有像以前那样停止,而是转到它应该调用的方法,但是它警告我,我不是通过创建文本框的线程访问文本框。我想我最好阅读有关windows消息的信息,我可能会了解调用的情况。