线程/异步委托的问题 (绝对诡异)

EsMo EsMo 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

public int addhandler(int a, int b)
{

Console.WriteLine("A");
System.Threading.Thread.Sleep(3000);// 注释代码后无延迟
return a + b;
}

这是一个异步委托的回调函数


Random r = new Random();
for (int i = 0; i < 50; i++)
{
clstest c = new clstest();
int num1 = r.Next(1, 101);
int num2 = r.Next(1, 101);
add a1 = new add(c.addhandler);
a1.BeginInvoke(num1, num2, new AsyncCallback(c.addCallback), a1);
Console.WriteLine("已启动数量" + i);
}


如果循环启动这个异步委托 是不是启动一个 就该打印一个A(也有可能启动几个后打印一个A,具体跟cpu有关)
但实际结果是50个异步委托全部启动完 才开始打印A 如果注释掉回调中的 sleep方法 就会按照正常逻辑打印
可sleep明显是在打印后之后 也就是说注释sleep应该和打印A是没关系的
...全文

相关推荐

vue.js 解决v-model让select默认选中不生效的问题

笔者今天在开发中遇到一个看起来很神奇的问题,平时编辑的页面我们select下拉选框利用vue.js 的v-model来实现自动选中,今天无论如何都选不中,后来经过很久的复查和大神的一句话终于解决这个这个问题,顺便分享一下。 问题 先上代码: 上图是前端的H5页面 下面是js代码: 一眼看上好像也没有什么问题。js 在初始化的时候,调用后台接口,取到数据然后传递给vue里面定义的data里面。并且前端页面除了select不能正常选中,其他的input 框的数据也都全部显示出来了(因为涉及一些机密的数据,所以还是涂鸦一下,主要还是把问题说清楚) 按照常理来说是不可能出现这个问题,毕竟之前在

weixin_38635449

AJAX 异步传输数据的问题

暂时把script中的‘+’都用‘-’代替,index += 1;改成index -= -1;呵呵,以后有人看到这段自动生成的诡异脚本,不知道会作何感想,但现在也只能如此。

weixin_38618521

JS-backyard:在JS后院,您可能不知道一些有趣的事情

JS-backyard 题目在 答案在 其实,根本就没有“诡异”的意料之外,只有我们没懂的情理之中。 JavaScript是一门很有趣的语言,I Love This Language.

皂皂七虫

js-ghost-stories:JavaScript鬼故事

js-ghost-stories JavaScript鬼故事 超级困扰的故事。 如果您想分享您的故事,请发送包含您故事的新目录的PR。

weixin_42156940

watchingyou:这是一个模拟打字的令人毛骨悚然的网站

看着你 这是一个令人毛骨悚然的网站,它模拟打字并假装成一个真实的人,他们知道您的位置。 使用PHP和在服务器端记录数据 使用模拟 使用客户端位置

ywnwx
评论 27
收藏 已收藏
分享
返回顶部
EsMo
C# 111,128 成员 642,537 内容