C ++ UI调用不起作用

时间:2015-11-13 15:20:39

标签: c++ multithreading winforms visual-studio-2013 clr

调试时,我发现我的程序在

之后停止了
  

myServer->调用(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);
    } 

提前感谢。

0 个答案:

没有答案