Лучшее место для этого - в вашем App.xaml.cs.Приложение в WPF отвечает за настройку цикла сообщений, поэтому вам не стоит об этом беспокоиться.Если в вашем App.xaml есть свойство действия сборки ApplicationDefinition (которое используется по умолчанию), оно выдаст следующий код запуска (который можно увидеть с помощью Reflector):
[STAThread, DebuggerNonUserCode]
public static void Main()
{
App app = new App();
app.InitializeComponent();
app.Run();
}
Вам необходимо использовать OnStartup:
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
// setup your timer here
}
Console.Read () действительно является хаком и ненужным, поскольку не может быть консоли, как в случае форм Windows.