Programmieren - alles kontrollieren 4.939 Themen, 20.672 Beiträge

Visual C++ (6 MFC): Thread soll Editbox füllen....

ExElNeT / 6 Antworten / Flachansicht Nickles

Hi!


Ich habe ein Problem ich möchte in einem Thread eine Berechnung durchführen, die ihre zwischenergebnisse an eine Editbox ausgibt. Nur leider .... wie so oft.... geht es nicht so wie ich es mir dachte!


hier mein code:


UINT CMyThread(LPVOID lpParam)
{
 CTestitDlg* cfg = reinterpret_cast<CTestitDlg*> (lpParam);
 
 for(int i = 0;i<100;i++)
 {  
  Sleep(100);
  CString str;
  str.Format("%d", i); 
  cfg->m_Test = str;


  cfg->UpdateData(FALSE); 
 }


 return 0;
}


void CTestitDlg::OnTest()
{
 // TODO: Add your control notification handler code here
 AfxBeginThread(CMyThread, this);
}


 


Bei UpdateData(FALSE); tritt ein Fehler in der wincore.cpp auf. Wie kann ich den Code umschreiben um eine funktionierende kommunikation zwischen neben und hauptthread herzustellen?


Ich bitte um Hülfe :)

bei Antwort benachrichtigen
thomas woelfer ExElNeT „Visual C++ (6 MFC): Thread soll Editbox füllen....“
Optionen

du musst die beiden threads irgendwie synchronisieren, denn der eine thread darf nicht einfach auf daten aus dem anderen thread zugreifen. daher resultiert auch das assert das du vermutlich bekommst.

bei dem mfc samples sind aber verschiedene threading-beispiele dabei die demonstrieren wie das geht. im wesentlichen musst du irgendwo einen speicherbereich anlegen auf den beide threads zugreifen koennen...

WM_HOPETHISHELPS

this posting contains no tpyos.
bei Antwort benachrichtigen
das reicht nicht thomas woelfer