Thread beenden

Hallo,

ich bin neu in diesem Board und hoffe ihr könnt mir weiterhelfen.
Ich habe folgendes Problem:
Ich habe eine Windows Anwendung(MFC) in dem über Funktionsaufrufe Threads gestartet werden. Die Funktionen wurden mir über eine DLL bereitgestellt, ich hab also keinen Einfluss auf die Threads. Beim Beenden der Anwendung bleibt mir immer einer dieser Threads aus der DLL hängen.
Wie kann ich nun diesen Thread beenden(abschießen) bzw. wo krieg ich den HANDLE auf diesen Thread her?

Gruß
Shane
 
Code, was fuer eine DLL?

Mehr Infos!
 
Hi,

die DLL is ne normale WIN32 DLL. Der Prototyp aus der DLL sieht folgendermaßen aus. Die Funktion öffnet eine Socketverbindung(offensichtlich in einem Thread).

Code:
extern XYZ_API int xyzOpen(xyzProtocol dummy, const char *host, const char *server, const char *client, xyzChannelType);

... und so rufe ich die Funktion auf.

Code:
int CommandChannel::connect(const CString Host, const CString Port, const CString Session, const CString Client) {
      disconnect();
      CString str;
      int err=0;		//kein Fehler  	     
      str = Session +":" + Port;
      mChannelId = xyzOpen(XYZ_TCP_PROTOCOL, (LPCTSTR)Host, (LPCTSTR)str, (LPCTSTR)Client, XYZ_COMMAND_CHANNEL);
 
 }

Wenn ich meine Anwendung beenden will mache ich ein disconnect, was aber offensichtlich nur die Socketverbindung schließt, denn der Thread bleibt ja hängen.

Wie kann ich diesen Thread killen?
Gibt es eine Möglichkeit alle Threads eines Prozesses rauszufinden?

Gruß
Shane
 
Zurück
Oben