我從服務引用收到一些數據。WCF(WPF)錯誤:調用線程必須是STA
結構f.e.如下所示:
我從服務引用(名稱空間:ServiceReference.Driver)中收到一些驅動程序數據
我的項目中的驅動程序數據的命名空間是'MyProject.Driver'。
DriverUserControl應該在MyProject.Driver的構造函數中創建。
public Driver(int id, string name, string telephone, string plate,
Dictionary<DateTime, TransportType> transportTypes, Division division)
{
this.id = id;
this.name = name;
this.telephone = telephone;
this.plate = plate;
this.transportTypes = transportTypes;
this.division = division;
userControl = new DriverUserControl(this);
}
但是,當我來到這裏:
public DriverUserControl(Driver magnet)
{
InitializeComponent();
this.magnet = magnet;
Render();
}
每當到達用戶控件的構造函數中出現以下錯誤「調用線程必須爲STA,因爲許多UI組件都需要這」顯示了。
因爲我從未在我的項目中的任何地方啓動線程,所以我不知道該如何將其設置爲STA。我猜這個servicereference被視爲一個線程,但是,是否有辦法將它改爲STA?
謝謝。
你爲什麼要在'Driver'類中創建Usercontrol? – Jobo
Driver'對象創建在哪裏? ServiceReference在這一切中的作用是什麼?它不清楚。 – YK1
在哪個線程上調用Driver構造函數?您需要對其進行調試,以查看它是否爲主線程,以確定其ApartmentState是否爲STA,否則,您必須手動創建STA線程。 –