c#异步入门
能用异步,就不要用线程,感觉线程要是控制不好,比较容易出问题
1
//要异步完成的方法
2
private void AddRadNum()
3
{
4
while(true)
5
{
6
Random r = new Random();
7
lstNum.Items.Add( r.Next(100,1000));
8
Thread.Sleep(500);
9
}
10
}
11![](/Images/OutliningIndicators/None.gif)
12
//定义一个委托
13
private delegate void delegateAddRadNum();
14![](/Images/OutliningIndicators/None.gif)
15
private void btnOK_Click(object sender, System.EventArgs e)
16
{
17
//实例化委托
18
delegateAddRadNum da = new delegateAddRadNum(AddRadNum);
19
//开始异步
20
IAsyncResult iar = da.BeginInvoke(null, null);
21
}
![](/Images/OutliningIndicators/None.gif)
2
![](/Images/OutliningIndicators/None.gif)
3
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
4
![](/Images/OutliningIndicators/InBlock.gif)
5
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
6
![](/Images/OutliningIndicators/InBlock.gif)
7
![](/Images/OutliningIndicators/InBlock.gif)
8
![](/Images/OutliningIndicators/InBlock.gif)
9
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
10
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
11
![](/Images/OutliningIndicators/None.gif)
12
![](/Images/OutliningIndicators/None.gif)
13
![](/Images/OutliningIndicators/None.gif)
14
![](/Images/OutliningIndicators/None.gif)
15
![](/Images/OutliningIndicators/None.gif)
16
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
17
![](/Images/OutliningIndicators/InBlock.gif)
18
![](/Images/OutliningIndicators/InBlock.gif)
19
![](/Images/OutliningIndicators/InBlock.gif)
20
![](/Images/OutliningIndicators/InBlock.gif)
21
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)