public MainWindow() { InitializeComponent(); ThreadPool.QueueUserWorkItem(delegate(Object state) { try { var serializer = new Serializer<List<ModelDetails>>(); var obj = serializer.DeSerializeObject("cars.dat"); EyedModels.Dispatcher.BeginInvoke(new Action(delegate { foreach (var modelDetails in obj) EyedModels.Items.Add(modelDetails); })); } catch { return; } }); }