Probleme mit dem wxThread (wxWidgets)
-
Moin, für mein tolles C++-Projekt (Mensch ärgere dich nicht) wollte ich eine tolle animation eines sich bewegenden würfels darstellen, dafür wollte ich einen thread starten,der die gui alle paar sekunden aktualisiert. und zwar mit folgendem code:
// WuerfelThread.h
#ifndef WUERFELTHREAD_H
#define WUERFELTHREAD_H#include "MyPanel.h"
#ifndef WX_PRECOMP
#include "wx/wx.h"
#endifclass WuerfelThread: public wxThread
{
private:
MyPanel * panel;
public:
WuerfelThread(MyPanel * xPanel);
void * Entry();
void initialize();
~WuerfelThread();
};#endif
// WuerfelThread.cpp
#include "WuerfelThread.h"
#include "MyPanel.h"WuerfelThread::WuerfelThread(MyPanel * xPanel)
:wxThread(wxTHREAD_DETACHED)
{
panel = xPanel;
}
WuerfelThread::~WuerfelThread()
{}void *WuerfelThread::Entry()
{
for (int i=0; i<10 ; i++)
{
(*panel).setZZahl((rand()%6)+1);
(*panel).updateGui();
Sleep(100);}
return 0;
}
void WuerfelThread::initialize()
{
wxThread::Create();
Run();
}Das ganze Objekt wird folgendermaßen erzeugt und gestartet:
WuerfelThread * wuerfelThread = new WuerfelThread(panel);
wuerfelThread->initialize();Beim kompilieren wird kein fehler angezeigt, nur wenn ich versuche das programm zu starten stürzt das programm ab...
ich versuche das jetzt schon sehr lange hinzukriegen, hab mir andere codes angeschaut, nur ich finde absolut keinen fehler. wäre für hilfe sehr dankbar..
-
hat sich erledigt, ich habe einfach den pointer auf panel falsch übergeben...
-
post mal den richtigen code!!
kann man einen thread auch ohne das man da mit pointer arbeitet starten?
also ohne dem new...? müsste auch gehn oder?so in der art:
WuerfelThread wuerfelThread = WuerfelThread(panel);
cu
-
user. schrieb:
post mal den richtigen code!!
kann man einen thread auch ohne das man da mit pointer arbeitet starten?
also ohne dem new...? müsste auch gehn oder?so in der art:
WuerfelThread wuerfelThread = WuerfelThread(panel);
cu
nein
all detached threads must be created on the heap because the thread will call delete this; upon termination.
cu
-
danke!
gilt das auch für timer??
weil da funzt das auch so:
http://www.wxwindows.org/manuals/2.4.2/wx392.htmcu
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum Rund um die Programmierung verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.