|
GRUPOS DE DISCUSSÃO PROFISSIONAL WINDEV, WEBDEV e WINDEV Mobile |
| | | | | |
| Problème sur THREAD et Socket |
| Iniciado por a.bussi, set., 29 2004 6:06 PM - 7 respostas |
| |
| | | |
|
| |
| Publicado em setembro, 29 2004 - 6:06 PM |
Bonjour.
Sur une application j'utilise un THREAD pour la reception sur Un SOCKET.
la connexion est sur un serveur pas en Windev
Au bout d'une 20ainne d'Heure de communication un message d'erreur apparait
Titre de la fenettre d'erreur: Microsift Visual C++ Texte de l'eureur :: Appel Fonction Virtuelle Pure
Je suppose donc que le Thread de reception ne doit plus existé et sont appel tombe dans le vide.
Je vous donne lmes 1er lignes de la routines de reception des SOCKEt par THREAD et le code de la fonction d'envoie sur les SOCKET appeler par les divers traitement de la fentre prioncipale de l'application
---------------------------
LE THREAD
PROCEDURE Reception()
sMessage est une chaîne crexe est un entier // compte rendue d'execution checkcnx est un entier BOUCLE // Attente et lecture du prochain message QUAND EXCEPTION DANS SémaphoreDébut("waitsocket") sMessage = SocketLit(csNomSocket,Faux,500) SémaphoreFin("waitsocket") FAIRE Erreur("Problème détecté sur la socket de réception",ExceptionInfo()) SORTIR FIN --------------------------------------------------- L'Emission
PROCEDURE SendSocket(cmd est une chaîne,data1 est une chaîne ="",data2 est une chaîne="")
SémaphoreDébut("waitsocket") SI SocketEcrit(csNomSocket, cmd+TAB+data1+TAB+data2+TAB) = Vrai ALORS SémaphoreFin("waitsocket") RENVOYER Vrai SINON SémaphoreFin("waitsocket") RENVOYER Faux FIN
SI quelqun a des conseilles ou une idé sur cette erreur
PS : le suport ne peut réponde a mon PB sans que je n'envoy l'aplication. mais pour faire fonctionné l'application il y a 13 MO compacté a envoyer ce qui ne passe pas dans les 9 max.
Mon pb c'est que je doit livré le 30 septembre je n'ai donc pas le temps d'envoyer un CDROM et d'attendre la réponsse.
Donc toute sucjestion rappide est la bien venue
Merci
A.BUSSI URBACO |
| |
| |
| | | |
|
| | |
| |
| Publicado em setembro, 29 2004 - 7:34 PM |
tu pourrais préciser si le planton est en emmission iu en récéption ?
A+ Adrien. |
| |
| |
| | | |
|
| | |
| |
| Publicado em setembro, 29 2004 - 9:15 PM |
Alain Bussi vient de nous annoncer :
Je suppose donc que le Thread de reception ne doit plus existé et sont appel tombe dans le vide.
Tu peux pas tester son existence avec threadetat (threadinnexistant)??? Et le relancer s'il n'existe pas? |
| |
| |
| | | |
|
| | |
| |
| Publicado em setembro, 30 2004 - 12:01 PM |
C'est quoi le "planton" ?? Le THREAD ser de reception
et divrsse fonction de la fêntre principale envoie avec gestion d'un sémaphore pour ne pas être a 2 sur la socket en même temps.... |
| |
| |
| | | |
|
| | |
| |
| Publicado em setembro, 30 2004 - 12:06 PM |
Tu peux pas tester son existence avec threadetat (threadinnexistant)??? Et le relancer s'il n'existe pas?
En fait il ne sert que a recevoir en permanence des info sur la socket il n'envoie rien.
et je pennse que c'est pas a moi de vérifier si un THREAD est mort il n'y a pas de raison que le noyeau Windev le ferme sans ma permision donc il devrait toujour existé...
la question est ne seraisse pas un THREAD en C++ de windev associé au mien en WDLangage qui aurait planté ??? |
| |
| |
| | | |
|
| | |
| |
| Publicado em novembro, 24 2005 - 1:03 PM |
j'ai exactement le même problème que vous, essayez d'enlever l'hyperthreading du processeur ou d'alller dans la faq de PCsoft, il y a une manipulation à faire
courage
eric |
| |
| |
| | | |
|
| | |
| |
| Publicado em novembro, 24 2005 - 3:35 PM |
Salut,
J'avais posté cette info dans le forum "Hors sujet" mais finalement, c'est pas du tout hors sujet.
ZDnet.fr annonce dans ses news "Censée doper les performances des puces qui effectuent des traitements multitâches, la technologie d'Intel ne semble pas tenir toutes ses promesses. Certains utilisateurs déplorent même des ralentissements, notamment avec SQL Server."
Info ou intox ? A chacun de se faire son avis.
La suite est à lire sur la page suivante :
http://www.zdnet.fr/actualites/informatique/0,39040745,39289582,00.htm
-- Ciao Pat Biker
http://aaa.windev.free.fr/On Thu, 24 Nov 2005 12:03:36 +0100, "Eric truffet" <eric.truffet@factmanage.com> wrote:
j'ai exactement le même problème que vous, essayez d'enlever l'hyperthreading du processeur ou d'alller dans la faq de PCsoft, il y a une manipulation à faire
courage
eric
|
| |
| |
| | | |
|
| | |
| |
| Publicado em março, 09 2007 - 12:51 PM |
La SOLUTION au problème NE PAS UTILISER de THREAD !
en effet j'ai utilisé un timer ça marche sans problème !
le problème est que même avec des sémaphore pour que la fennetre hote du THREAD n'utilise pas les objet ou variable mise ajour par THREAD en interne l'interpréteur WD les utilise lui ! Donc au vue des nouvelles explications apparu dans WD11 il est vrai q'uil ne faut pas qu'un THREAD utilise un seul objet de la fenetre ni de variable utilisé en dhors de THREAD. IL FAUT PASSER PAR LEs EVENEMENT Windows sendmessage et récupéré les doné via ce tunel, ce qui dans la plupart des cas et tres contraigniant ! |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|