У меня есть приложение WPF, как это:STA резьб исключение в приложении WPF
public CreateProject()
{
InitializeComponent();
_3DCAO.Temporary3DCAO.Close = false;
Userinitial fen = new Userinitial();
container.Content = fen;
Thread windowThread2 = new Thread(delegate() { verifing2(); });
windowThread2.IsBackground = true;
windowThread2.Start();
}
public void verifing2()
{
bool condition_accomplished = false;
while (!condition_accomplished)
{
if (Temporary3DCAO.Etape == 1)
{
_3DCAO.Settings set = new Settings();
if (container.Dispatcher.CheckAccess())
{
container.Content = set;
}
else
{
container.Dispatcher.Invoke(DispatcherPriority.Normal, (Action)(() =>
{
container.Content = set;
}));
}
condition_accomplished = true;
}
}
}
В методе Verifing
я хотел бы создать экземпляр User Control
_3DCAO.Settings set = new Settings();
Но появляется эта ошибка:
The calling thread must be STA, as required by many components of the user interface
- Зачем возникает это исключение?
- Как я могу это исправить?
Взгляните на этот связанный пост. http://stackoverflow.com/questions/2329978/the-calling-thread-must-be-sta-because-many-ui-components-require-this – Jason