Фальсифицирование времени, не изменяя системные часы Windows

Это обычная проблема с началом работы с людьми. Всякий раз, когда вы обновляете элементы пользовательского интерфейса из потока, отличного от основного потока, вам нужно использовать:

this.Dispatcher.Invoke(() =>
{
    ...// your code here.
});

Вы также можете использовать control.Dispatcher.CheckAccess() , чтобы проверить, является ли текущий поток владеет контролем. Если он действительно владеет, ваш код выглядит нормально. В противном случае используйте шаблон выше.

17
задан Ishmaeel 13 January 2009 в 00:39
поделиться

3 ответа

RunAsDate может сделать это.

12
ответ дан 30 November 2019 в 14:25
поделиться

Начиная приблизительно 2 года назад, я всегда абстрагирую вызов к DateTime. Теперь (C#) через Служебный класс. Таким образом, я могу всегда фальсифицировать дату/время, если я хочу, или просто передать ее непосредственно до DateTime. Теперь.

Звуки similiar, к какой предложенный BillH.

public class MyUtil
{
  public static DateTime GetDateTime()
  {
     return DateTime.Now.AddHours(5);
     //return DateTime.Now;   
  }
}
1
ответ дан 30 November 2019 в 14:25
поделиться

Обертка Ваши вызовы к 'getCurrentDateTime ()' системные вызовы, таким образом, можно ввести смещения или множители во времена чтения кода во время тестирования?

0
ответ дан 30 November 2019 в 14:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: