Bonjour, c'est encore moi ^^"

Décidement chaque fois que je règle un problème, j'en ai un autre ;_;

J'utilise des sockets dans des threads, pour pouvoir utiliser les notifications d'événements comme le OnReceive, il faut faire un detach du handle du socket avant de rentrer dans la thread, et faire un attach(handle) à l'initialisation de la thread.

Jusque là tout va bien, mais je n'ai aucune notification qui se déclenche, je ne comprends pas vraiment pourquoi ça ne fonctionne pas.

Je mets la code de mon appel de thread :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
	pThreadReceive =  (MyThreadRS*)AfxBeginThread( RUNTIME_CLASS( MyThreadRS ), THREAD_PRIORITY_NORMAL,  0,  CREATE_SUSPENDED);
Mon code de detach et de resume thread (dans ma thread principale) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
hConnected = incomingSock->Detach();
pThreadReceive->ResumeThread();
Et le code de ma thread :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
BOOL MyThreadRS::InitInstance()
{
	Connection *m_connect = new Connection;
	m_sConnected.Attach(hConnected);
	TRACE("MyThreadRS::InitInstance\n");
	if (!AfxSocketInit())
	{
		return FALSE;
	}
	InitFile();
	while(true)
	{
		SingleStep();
		Sleep(2000);
	}
	m_sConnected.Detach();
	return TRUE;	
}
void MyThreadRS::SingleStep()
{
	ARGUMENTS    MyArguments;
	if(!m_pArOut->IsBufferEmpty())
	{
		m_pArOut->Write(&MyArguments, sizeof(ARGUMENTS));
		m_pArOut->Flush();
		TRACE("MyThreadRS::SingleStep : m_pArOut Flush\n");
	}
	TRACE("MyThreadRS::SingleStep\n");
}
void MyThreadRS::InitFile()
{
	m_pFile  = new CSocketFile(&m_sConnected);
	m_pArIn  = new CArchive(m_pFile,CArchive::load);
	m_pArOut = new CArchive(m_pFile,CArchive::store);
	TRACE("MyThreadRS::InitFile\n");
}
Le Sleep n'est là que pour ne pas avoir trop de trace en éxécution.

En plus, au début de l'enclenchement de ma thread, je fais un flush d'une structure vide mais ça passe en éxécution.

Je devrais avoir des notifications d'événement normalement mais je n'en ai pas...
Peut etre que j'ai mal compris ce qu'il est mis dans MSDN... (je mets les liens au cas où)

http://support.microsoft.com/default.aspx?scid=kb;EN-US;175668
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dv_wcemfc4/html/aflrfcsocketcolcolattach.asp

Si quelqu'un connait le problème, ce serait gentil de m'aider, je désespère là ;_;