public MainWindow() { InitializeComponent(); this.Height = 350; this.Width = 500; Thread CMStart = new Thread(() => //запуск формы CashMachine будет в новом потоке { CashMachine CM = new CashMachine(); //создаём новый обЪект CashMachine в новом потоке CM.Show(); CM.Height = 350; CM.Width = 500; System.Windows.Threading.Dispatcher.Run(); //работа с Диспетчером }); CMStart.IsBackground = true; //!!!!ЭТО РЕШЕНИЕ ДЛЯ ТОГО ЧТОБЫ ПРОГРАММА НОРИАЛЬНО ЗАВЕРШАЛАСЬ (HELP!!!) CMStart.SetApartmentState(ApartmentState.STA); // Устанавливаем AppartmentState в STA для работы с компонентами формы CMStart.Start(); //старт CashMachine lbPinIB.Visibility = System.Windows.Visibility.Hidden; //часть компонентов формы при старте скрыта или неактивна tbPinIB.Visibility = System.Windows.Visibility.Hidden; btnOkIB.Visibility = System.Windows.Visibility.Hidden; tbCashIB.Visibility = System.Windows.Visibility.Hidden; lbOncardIB.Visibility = System.Windows.Visibility.Hidden; lbUSDIB.Visibility = System.Windows.Visibility.Hidden; btn1IB.IsEnabled = false; tb1IB.IsEnabled = false; cards = lObj.ReadCards(); foreach (string item in cards) { cb1IB.Items.Add(item); //заносим номера всех карт в ComboBox } }