static void Main(string[] args)
{
string[] str = new string[10];
IAsyncResult[] asyncResults = new IAsyncResult[10];
for (int i = 0; i < 10; i++)
{
int x = i;//加上这个可以避免,如果不加,可能下达BeginInvoke命令以后,i++已经执行了,从而导致错误
asyncResults[i] = new Action(delegate
{
str[x] = x.ToString();
}).BeginInvoke(null, null);
}
for (int j = 0; j < 10; j++)
{
asyncResults[j].AsyncWaitHandle.WaitOne();
}
for (int k = 0; k < 10; k++)
{
Console.WriteLine(str[k]);
}
}
循环里面写异步时注意变量赋值可能具有延时
最新推荐文章于 2023-02-10 17:12:50 发布