Андраху был на правильном пути с определением обработчика. Если у вас есть обработчик, который вызывает ваши функции обновления, вы можете просто задержать сообщение , отправленное обработчику, на 10 секунд.
Таким образом, вам не нужно запускать собственный поток или что-то подобное, что приведет к странным ошибкам, проблемам отладки и обслуживания.
Просто позвоните:
Handler myHandler = new MyUpdateHandler(GUI to refresh); <- You need to define a own handler that simply calls a update function on your gui.
myHandler.sendMessageDelayed(message, 10000);
Теперь ваша функция handleMessage будет вызываться через 10 секунд. Вы можете просто отправить другое сообщение в вашей функции обновления, заставляя весь цикл повторяться снова и снова
@@ DATEFIRST является локальным для вашего сеанса. Вы можете проверить это, открыв вкладки в Sql Server Management Studio (SSMS). Выполните этот код на первой вкладке:
SET DATEFIRST 5
И убедитесь, что он не влияет на другую вкладку:
select @@datefirst
См. Эту статью MSDN .
Еще одно замечание: если вы не хотите устанавливать DATEFIRST, вы можете просто включить значение DATEFIRST в свой запрос, чтобы найти требуемый день как:
SELECT (datepart(dw,ADateTimeColumn) + @@DATEFIRST) % 7) as 'MondayBasedDate'
, ...
FROM famousShipwrecks --
Тогда вам вообще не нужно беспокоиться о его восстановлении!