multithreading - Thread abort and ThreadExit not working visualstudio2008 c++ -
multithreading - Thread abort and ThreadExit not working visualstudio2008 c++ -
i'm using threads in c++ visualstudio2008, when form closes thread still stays active tried thread::abort when form closing, after calling thread still alive. set excption handler in thread , when abort exception arrive thread exit, thread not come in in exception handler. how can close thread? othread global object thread.
private: void threadmethod(/*object^ state*/) { try{ socket server; wsadata wsadata; sockaddr_in local; int wsaret=wsastartup(0x101,&wsadata); if(wsaret!=0) { return; } local.sin_family=af_inet; local.sin_addr.s_un.s_addr=inaddr_any; local.sin_port=htons((u_short)20248); server=socket(af_inet,sock_stream,0); if(server==invalid_socket) { return; } if(bind(server,(sockaddr*)&local,sizeof(local))!=0) { return; } if(listen(server,10)!=0) { return; } socket client; sockaddr_in from; int fromlen=sizeof(from); int buffer; char buff; //this->invoke(gcnew methodinvoker(this, &form1::updatebutton)); while(!stop) { client=accept(server,(struct sockaddr*)&from,&fromlen); //con la struct int numbyte=recv(client,(char*) &mystruct, (int) sizeof(mystruct), 0); this->invoke(gcnew methodinvoker(this, &form1::updatebutton)); messagebox::show(mystruct.num.tostring()); closesocket(client); } closesocket(server); wsacleanup(); } grab (threadabortexception^ e) { exitthread(0); } exitthread(0); } private: system::void form1_formclosing(system::object^ sender, system::windows::forms::formclosingeventargs^ e) { othread->abort(); if(othread->isalive) { messagebox::show("ok"); } } }; }
how this:
// create socket non-blocking int mode = 1; ioctlsocket(server, fionbio, &mode); struct timeval timeout; timeout.tv_sec = 0; timeout.tv_usec = 100000; // 0.1 sec fd_set server_set; while (!stop) { fd_zero(&server_set); fd_set(server, &server_set); if (select(server + 1, &server_set, 0, 0, &timeout) == socket_error) { // error handling } if (fd_isset(server, &server_set)) { // phone call take , other stuff } }
multithreading visual-studio-2008 c++-cli threadabortexception thread-abort
Comments
Post a Comment