Код: Выделить всё
UI_thread
{
TransmitData()
{
// load data for tx
// fire off TX background worker
}
RxSerialData()
{
// if received data is ack, set ack received flag
}
}
TX_thread
{
// transmit data
// set ack wait timeout
// fire off ACK background worker
// wait for ACK background worker to complete
// evaluate status of ACK background worker as completed, failed, etc.
}
ACK_thread
{
// wait for ack received flag to be set
}
Код: Выделить всё
for( i = 0; (i < waitTimeoutVar) && (!bAckRxd); i++ )
{
System.Threading.Thread.Sleep(1);
}
Код: Выделить всё
DateTime dtThen = DateTime.Now();
DateTime dtNow;
TimeSpan stTime;
do
{
dtNow = DateTime.Now();
stTime = dtNow - dtThen;
}
while ( (stTime.TotalMilliseconds < waitTimeoutVar) && (!bAckRxd) );
Есть мысли? или ваши предложения будут оценены по достоинству. Я использую Microsoft Visual C# 2008 Express Edition. Спасибо.
Подробнее здесь: https://stackoverflow.com/questions/281 ... oundworker