Window 控件异步处理

  

private void button1_Click(object sender, EventArgs e)
{
Func<int, string> func = QueryDataBase;
for (int n = 0; n < 1000; n++)
{
func.BeginInvoke(n, (result) =>
{
string ret = func.EndInvoke(result);
this.BeginInvoke(new Action<string>(ShowText), ret);
},
null);
}
}

private string QueryDataBase(int n)
{
Thread.Sleep(10);

return n.ToString();
}

private void ShowText(string str)
{
this.label1.Text = str;
}

posted @ 2014-05-09 16:56  Jesong  阅读(188)  评论(0)    收藏  举报