3 回答

TA貢獻(xiàn)1815條經(jīng)驗 獲得超6個贊
您遇到的問題是,大多數(shù)后臺線程/輔助API都會以“多線程單元”狀態(tài)創(chuàng)建線程。錯誤消息表明控件要求線程是單線程單元。
您可以通過自己創(chuàng)建一個線程并在該線程上指定STA公寓狀態(tài)來解決此問題。
var t = new Thread(MyThreadStartMethod);
t.SetApartmentState(ApartmentState.STA);
t.Start();

TA貢獻(xiàn)1805條經(jīng)驗 獲得超9個贊
如果您習(xí)慣[STAThread]了應(yīng)用程序的主條目,但仍然收到錯誤,則可能需要對控件進(jìn)行線程安全調(diào)用 ……如下所示。對于我來說,同樣的問題,以下解決方案有效!
Private void YourFunc(..)
{
if (this.InvokeRequired)
{
Invoke(new MethodInvoker(delegate()
{
// Call your method YourFunc(..);
}));
}
else
{
///
}
- 3 回答
- 0 關(guān)注
- 884 瀏覽
添加回答
舉報