我需要從其創建的線程以外的線程訪問DataGridView控件。我讀過我必須使用一個委託,它的工作原理,但我需要等待委託完成之前繼續在線程中。我試圖在BeginInvoke
之後撥打EndInvoke
,但線程仍在繼續。C#在繼續之前等待委託完成
public void ArrangeGrid()
{
ArrangeGridHandler ag = ArrangeGridAsync;
IAsyncResult result = ag.BeginInvoke(cb, null);
ag.EndInvoke(result);
}
當我打電話ArrangeGrid()
線程將繼續即使還沒有完成。我能怎麼做? 謝謝!
Delegate.BeginInvoke不會調用它在你的GUI線程。嘗試'Control/Form.Invoke(...);'。這將在正確的線程上執行並等待完成。 – Chris