Вы хотите видеть 10 (возможно) различных значений, отображаемых в ваших текстовых полях в течение 1 с, с интервалом в 10 мс, после вызова getAttr_Click ()?
Если да, то это будет путь ксделайте это:
private void getAtr_Click(object sender, EventArgs e)
{
for (int i = 1; i <= 10; i++)
{
while (vn100.CurrentAttitude == null)
Thread.Sleep(10);
Get_Attitude();
Thread.Sleep(10);
}
}
В вашей версии поток, вызвавший метод getAttr_Click (), просто проверяет vn100.CurrentAttutude с интервалами 10 мс.Как только оно имеет ненулевое значение, я подозреваю, что оно остается ненулевым, то есть ваш цикл while () будет пропущен в каждой итерации for (), поэтому Get_Attitude () будет вызываться 10 раз подряд (вероятно) так быстро, чтовы можете видеть только последние значения на экране.
Дело в том, что ваш пользовательский интерфейс останется без ответа каждые 10 мс в течение клика, поэтому вы можете рассмотреть возможность вызова этого getAtr_Click () асинхронно или другого тривиального решения.*
EDIT: На самом деле, это поможет узнать поведение компонента vn100.В случае, если это непредсказуемо, единственное, в чем вы можете быть уверены, это отображать 10 различных значений на расстоянии не менее 10 мс во времени, независимо от того, выполняете ли вы все в потоке пользовательского интерфейса или в другом потоке.Все это связано с поведением vn100.CurrentAttitude ...