import datetime
temp = datetime.datetime.fromtimestamp(1386181800).strftime('%Y-%m-%d %H:%M:%S')
print temp
Application.Current.Dispatcher.Invoke ((Action) delegate {// помещаем здесь код});
Вы также можете попробовать
// create a thread
Thread newWindowThread = new Thread(new ThreadStart(() =>
{
// create and show the window
FaxImageLoad obj = new FaxImageLoad(destination);
obj.Show();
// start the Dispatcher processing
System.Windows.Threading.Dispatcher.Run();
}));
// set the apartment state
newWindowThread.SetApartmentState(ApartmentState.STA);
// make the thread a background thread
newWindowThread.IsBackground = true;
// start the thread
newWindowThread.Start();
Попробуйте вызвать код из диспетчера :
Application.Current.Dispatcher.Invoke((Action)delegate{
// your code
});
Если вы вызываете оператор UI нового окна в существующий поток, он выдает ошибку. Вместо этого создайте новый поток внутри основного потока и напишите оператор UI окна в новом дочернем потоке.
Для меня эта ошибка произошла из-за передачи пустого параметра. Проверка значений переменных исправила мою проблему без изменения кода. Я использовал BackgroundWorker.
Если вы делаете вызов из основного потока, вы должны добавить атрибут STAThread к методу Main, как указано в предыдущем ответе.
Если вы используете отдельный поток, он должен быть в STA (однопоточная квартира), что не относится к потокам рабочего стола. Вы должны сами создать поток:
Thread t = new Thread(ThreadProc);
t.SetApartmentState(ApartmentState.STA);
t.Start();
с ThreadProc, являющимся делегатом типа ThreadStart.