private void DoTransmit(object state)
{
var transmitState = state as TransmitState;
try {
Exception error = null;
try {
TransmitIr(
transmitState.IRCode,
transmitState.CodeFormat,
transmitState.RepeatCount,
transmitState.InactivityWaitTime,
transmitState.WaitEvent);
transmitState.WaitEvent.WaitOne();
}
catch (Exception ex) {
error = ex;
}
TransmitCompletedEventHandler temp = _transmitCompleted;
if (null != temp) {
temp(this, new TransmitCompletedEventArgs(error, transmitState.UserState));
}
}
finally {
transmitState.Dispose();
}
}