Ver Mensaje Individual
  #3 (permalink)  
Antiguo 03/01/2006, 01:39
Guille.m
 
Fecha de Ingreso: enero-2006
Mensajes: 9
Antigüedad: 19 años, 1 mes
Puntos: 0
Hola, gracias por contestar.

Bueno es que en principio desde el thread capturo una señal externa, y si esta es igual = 1, me indica que hay que borrar la primera entrada del data table. Entonces desde alli es donde llamo a esta funcion.
Creo un thread con esta funcion start() solo empezar la funcion principal, de esta manera:

threadDAQPAd = new System.Threading.Thread(new system.Threading.ThreadStart(start));
threadDAQPAd.Priority = ThreadPriority.Lowest;
threadDAQPAd.Start();

private void start()
{
short iStatus = 0;
short iDevice = 1;
short iPort = 1;
long iPattern = 0;

while(true)
{
try
{
unsafe
{
// Llamada a la DLL, implementada en otra clase (DAQPad6507)
iStatus = DAQPad6507.DIG_In_Prt(iDevice, iPort, &iPattern);
}
if(iStatus < 0)
{
printerStopped = true;
}
else
{
if(iPattern == 1)
{
popQueue(0);
iPattern = 0;
}
if(iPattern == 2)
{
MessageBox.Show ("Ribbon broken", "Printer Error",
MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
printerStopped = true;
iPattern = 0;
}
}
catch
{
printerStopped = true;
}
Thread.Sleep(100);
}
}


//----------------------------------------------------------------

La verdad es que ya no se que mas probar, asi que cualquier ayuda o idea me iran genial.

Guillem