1
我得到一個跨線程操作無效使用異步/等待在VSTO
跨線程操作無效
...錯誤與下面的代碼。我認爲異步/等待會照顧這一點,但顯然不是。奇怪的是,當我註釋掉textBoxUser.Enabled = false
時,錯誤消失。思考?
private async void buttonPopulate_Click(object sender, EventArgs e)
{
textBoxUser.Enabled = false;
await Populate();
textBoxUser.Enabled = true; //error here
}
你正試圖從不同的線程訪問GUI元素。你需要一個調用。 – Trey
'private async void buttonPopulate_Click'如果WinForms調用此事件處理程序,則應該在WinForms同步上下文中並繼續在主線程上。你是自己調用這個方法還是從一個定時器調用這個方法,或者實際調用'await Populate()。ConfigureAwait(false);'? –
@MongZhu稍微不同的問題和最新的答案已過時 – MickyD