Hola abel, saludos:<div><br></div><div>podrías probar a utilizar múltiples threads(hilos), acá te dejo un ejemplo para que lo analices. En mi caso lo he comprobado en CODE BLOCKS efectivamente, échalo a correr y mira los resultados de los bucles, como se entre mezclan al ejecutarse simultáneamente.</div>
<div><br></div><div>----------------------------------------------------------</div><div><div>#include <windows.h></div><div>#include <process.h></div><div>#include <iostream></div><div>using namespace std;</div>
<div><br></div><div>CRITICAL_SECTION Section;</div><div><br></div><div>inline void funcion_uno(void *P)</div><div>{</div><div> int Count;</div><div> for (Count = 1; Count < 11; Count++)</div><div> {</div><div>
EnterCriticalSection(&Section);</div><div> cout << "Funcion 1: " << Count << " " << endl;</div><div> LeaveCriticalSection(&Section);</div><div> }</div>
<div> return;</div><div>}</div><div><br></div><div>inline void funcion_dos(void *P)</div><div>{</div><div> int Count;</div><div> for (Count = 10; Count > 0; Count--)</div><div> {</div><div> EnterCriticalSection(&Section);</div>
<div> cout << "Funcion 2: " << Count << " " << endl;</div><div> LeaveCriticalSection(&Section);</div><div> }</div><div> return;</div><div>}</div><div>
<br></div><div>int main()</div><div>{</div><div> //Una forma</div><div> //-----------------------------</div><div> //InitializeCriticalSection(&Section);</div><div> //_beginthread(Func1, 0, NULL);</div><div>
//_beginthread(Func2, 0, NULL);</div><div> //Sleep(10000);</div><div> //DeleteCriticalSection(&Section);</div><div> //-----------------------------</div><div><br></div><div> //Otra forma</div><div> //-----------------------------</div>
<div> HANDLE hThreads[2];</div><div> InitializeCriticalSection(&Section);</div><div> hThreads[0] = (HANDLE)_beginthread(Func1,</div><div> 0,</div><div> NULL);</div>
<div> hThreads[1] = (HANDLE)_beginthread(Func2,</div><div> 0,</div><div> NULL);</div><div> WaitForMultipleObjects(2,</div><div> hThreads,</div>
<div> TRUE,</div><div> INFINITE);</div><div> DeleteCriticalSection(&Section);</div><div> //-----------------------------</div><div><br></div><div> cout << "Saliendo del programa" << endl;</div>
<div> return 0;</div><div>}</div></div><div>----------------------------------------------------------</div><div><br></div><div>Atentamente.</div><div><br></div><div>Elinv.</div><div>(<a href="http://todocporelinv.blogspot.com/">http://todocporelinv.blogspot.com/</a>)</div>
<div><br><br><div class="gmail_quote">El 21 de septiembre de 2011 01:19, Abel <span dir="ltr"><<a href="mailto:aydabella@yahoo.com.ar">aydabella@yahoo.com.ar</a>></span> escribió:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Hola a todos,<br>
aqui nuevamente con la siguiente pregunta.<br>
En mi programa tengo la siguiente situación:<br>
- envío un comando preguntando una información de un aparato, por decir:<br>
send(dame_ID,respuesta);<br>
el problema es que C/C++ solo me permite enviar otro comando, despues que send(..) haya concluido, lo que quiero es:<br>
- cuando envío el send(...), paralelamente enviar otro comando, por ejemplo start(...);<br>
El aparato con el que me quiero comunicar, tiene un sistema de seguridad, solo puedo comunicarme con él de esta forma:<br>
- send(...) //el aparato espera a start(...) durante unos 5 segundos y recien me envía una respuesta correcta, sinó en respuesta tengo un "resp_out"<br>
- solo puedo enviar otro comando, despues de haber recibido una respuesta de send(...).<br>
Espero me puedan dar alguna idea, si no me entendieron, puedo dar mas detalles al respecto.<br>
Gracias.<br>
<font color="#888888">Abel<br>
_______________________________________________<br>
Lista de correo Cconclase <a href="mailto:Cconclase@listas.conclase.net">Cconclase@listas.conclase.net</a><br>
<a href="http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net" target="_blank">http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net</a><br>
Bajas: <a href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ" target="_blank">http://listas.conclase.net/index.php?gid=2&mnu=FAQ</a><br>
</font></blockquote></div><br></div>