В конструкторе при создание класса создаю вот такой таймер
public Calculate()
{
TimerCallback tm = new TimerCallback(AddToBase);
Timer timer = new Timer(tm, 0, 5000, 5000);
}
Метод AddToBase
public void AddToBase(object obj)
{
if ((02 == System.DateTime.Now.Hour) && (04 < System.DateTime.Now.Minute))
{
SaveDataModel saveDataModel = new SaveDataModel()
{
name = saveDataMode.name,
surname = saveDataMode.surname,
Time = DateTime.Now.Date.ToString()
};
DataBaseContext db = new DataBaseContext();
db.AddBase(saveDataModel);
}
}
Ну и сам метод сохранения в базу. Тут все просто
public void AddBase(SaveDataModel saveDataMode)
{
using (DataPersonEntities db = new DataPersonEntities())
{
StrongData person = new StrongData()
{
name = saveDataMode.name,
surname = saveDataMode.surname,
Time = saveDataMode.Time
};
db.StrongDatas.Add(person);
db.SaveChanges();
}
}
Вызывается метод с таймера только один раз. А должен регулярно. Проблема именно в строке db.AddBase(saveDataModel);
Когда ее комментируешь, то метод вызывается регулярно как прописано в таймере. Мне нужно каждые 5 минут сохранять данные в базу. Пытался делать метод и всю цепочку асинхронной, не помогло, результат тот же. В чем проблема?
Решил проблему тем, что за юзал Observable в конструкторе, тогда метод продолжает вызываться.
public CalculateManager()
{
var obs = Observable.Interval(TimeSpan.FromMinutes(5));
obs.Subscribe(x => this.AddToBase());
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Пытаюсь разобраться с MVVM и написал небольшое приложениеДо определённого момента всё было прекрасно, но потом мой мозг сломался :( Итак есть...
Используется код для выборки всех колонок в таблице и дальнейшее применение к каждой функционала updateПри этом он на колонки типа integer как...
Класс CalculationResult<T> использует инкапсуляцию, чтобы задать контракт: