我需要从创建它的线程以外的线程访问DataGridView控件。我读过我必须使用委托,它可以工作,但我需要等待该委托完成后继续在线程中。我试图在EndInvoke
之后调用BeginInvoke
,但线程仍在继续。
public void ArrangeGrid()
{
ArrangeGridHandler ag = ArrangeGridAsync;
IAsyncResult result = ag.BeginInvoke(cb, null);
ag.EndInvoke(result);
}
当我调用ArrangeGrid()
时,线程会继续,即使它没有完成。我能怎么做?
谢谢!
答案 0 :(得分:2)
使用Async方法时,将为您创建一个新线程。
尝试使用Invoke
public void ArrangeGrid()
{
if(this.InvokeRequired)
{
Action arrange = ArrangeGrid ;
this.Invoke(arrange);
}
else
{
//insert your code here
}
}