Задача, вот такой код примерно ща натряпал
bool isFirst=true;
/// Приходит значения на порты асинхронно, или еще хз.., запустить функцию обработки значений на них,
/// Значение может прийти на 1 порт, или на оба, если на оба, то нужно только 1 раз их обработать
/// их свежие значения.
public void OnChangePort(Port p,int index)
{
if (index == 0)
{
Port1.SetValue(p.GetValue());
}
else
{
Port2.SetValue(p.GetValue());
}
if (isFirst) // если еще не была запущенна функция Propagate(которая может запускаться только по частоте.
{
long tiks = 3; // ;
///????? Как здаержать на число тактов или ПикоСекунд.
System.Threading.Thread.Sleep((tiks)); /// ждем пока прийдет значение на второй порт через пару тактов
/// елси не пришло то и фиг с ним.
Propagate(); // выполнить работу с портами(как бы работает по частоте типа 3ГигаГерцю
}
}
public void Propagate()
{
Work(Port1.GetValue(), Port2.GetValue(), Operation); // выполнить операцию
isFirst = true; /// разрешить дальше обрабатывать значения
}