調用BeginInvoke()時,代理是否會按照調用方法的順序返回?或者不能保證哪個代表會先回來?Control.BeginInvoke執行順序
public Form1()
{
InitializeComponent();
for (int i = 0; i < 100; i++)
{
Thread t = new Thread(DisplayCount);
t.Start(i);
}
}
public void DisplayCount(object count)
{
if (InvokeRequired)
{
BeginInvoke(new Action<object>(DisplayCount), count);
return;
}
listBox1.Items.Add(count);
}
並且整數列表將不按順序返回。
'BeginInvoke()'在單獨的線程上運行委託。代表回來的命令不能保證。代表將在完成執行時返回,這意味着如果代表運行了很長時間,即使它是先調用的,它也會很晚纔回來。 –
@Hans看到我對Jon Senchyna的回答的評論。這對於Control.BeginInvoke來說是不正確的,但它對於Delegate.BeginInvoke是正確的。 – Tergiver