Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » prozessaufspaltung

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
23.08.2007, 08:52 Uhr
~spider-schwein
Gast


hallo hab eine frage, hab eine mfc anwendung geschrieben, mit zwei buttons, bei einem startet er eine funktion. mit dem anderen button möchte ich abbrechen, dies geht aber nicht nach starten mit dem anderen bis die funktion abgearbeitet ist.
ich möchte aber hier noch eingreifen können. muss ich da evtl mit fork prozess aufspalten und einen neuen prozess generieren?

gruß
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
23.08.2007, 09:19 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


hi fork ist linux - aber du musst einen neuen Thread starten für deine Funktion (neuer Prozess wäre Overkill)

Schau dir mal AfxStartThread bzw den API-Befehl CreateThread an, müssten auch Beispiele dazu hier im Forum stehen.
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
23.08.2007, 09:49 Uhr
Tommix



Hallo.
AfxBeginThread:
http://msdn.microsoft.com/library/deu/default.asp?url=/library/DEU/vccore/html/_core_multithreading_with_c.2b2b_.and_mfc.asp

Gruß, Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
23.08.2007, 11:07 Uhr
~spider-schwein
Gast


hab mir mal die beispiele im forum angesehen:



hab in meiner dialogklasse unter ...Dlg.h
unter public


C++:
static UINT thrFunction1 (LPVOID pParam);    //Thread-function
int auszuführende_fkt(void);



unter ...Dlg.cpp
hab ich dann das implementiert


C++:
UINT myclassDlg::thrFunction1(LPVOID pParam)
{
myclassDlg *pDlg = (myclassDlg*) pParam;
pDlg->auszuführende_fkt();  //<--Funktion wird in einem Thread ausgeführt
return 0;
}




und unter ...Dlg.cpp noch


C++:
void myclassDlg::OnButton1()
CWinThread* pThread1 = AfxBeginThread (thrFunction1, this, THREAD_PRIORITY_HIGHEST);



trotzdem kommt folgender fehler, könnt ihr mir weiterhelfen?

myclass.obj : error LNK2001: Nichtaufgeloestes externes Symbol "public: int __thiscall CmyclassDlg::auszuführende_fkt(void)" (?auszuführende_fkt@CmyclassDlg@@QAEHXZ)
Debug/myclass.exe : fatal error LNK1120: 1 unaufgeloeste externe Verweise
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
23.08.2007, 11:09 Uhr
~spider-schwein
Gast


bei onbutton1 natürlich noch {}
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
23.08.2007, 11:23 Uhr
FloSoft
Medialer Over-Flow
(Administrator)



C++:
int auszuführende_fkt(void);



umlaute im code sollte an vermeiden, ansonsten musst du natürlich die funktion auch implementieren - also das was du dann im thread ausführen willst auch "vercoden"
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
23.08.2007, 11:31 Uhr
~spider-schwein
Gast


ja und unter quellcodedateien hab ich noch die
auszuführende_fkt.cpp hinzugefügt

und dort drin gibt es die funktion


C++:
int auszuführende_fkt(void)
{
do something
}

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
23.08.2007, 11:36 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


du rufst aber die vom Dialog auf (welche nur als deklaration existiert)
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
23.08.2007, 11:43 Uhr
~spider-schwein
Gast


?
kann ich diese funktion nicht so aufrufen??

C++:
pDlg->auszuführende_fkt();  

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
23.08.2007, 12:13 Uhr
Tommix



Was Flo meint ist

C++:
int myClassDlg::auszuführende_fkt()
{
...


An der Threadpriorität würde ich erst dann schrauben, wenn es vom Prinzip her läuft.
- Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: