C#关于多线程并发的问题
在某个游戏礼包领取的网页上,一开始出现一个bug,多次点击按钮时候,会领取多个礼包,之后加了个等待界面,,但发现还是可以通过程序直接点击按钮而领取,但每次领取最多只有2个...
在某个游戏礼包领取的网页上,一开始出现一个bug ,多次点击按钮时候,会领取多个礼包,之后加了个等待界面,,但发现还是可以通过程序直接点击按钮而领取,但每次领取最多只有2个,,而且还不是百分百成功,,偶然有一次领了8个,,但基本都是2次,,是不是写的有问题?如图
展开
3个回答
展开全部
不清楚你的业务是什么意思?同一个用户只能领取一份吗?还是可以领取多份?用户领取的时候肯定有身份的,不然就没有任何意义了。对按钮点击的线程是要加lock锁的,等待数据库状态返回的过程是不允许再次点击的。根据猜测发表的看法,不知道有没有用。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你不必从UI上面考虑.最简单有效的就是数据库记录. 领取状态(已领取,未领取)
在点击领取时先查询该用户是否领取过了.如果领取过了就提示"您已领取礼包了".这样就很安全了.
在点击领取时先查询该用户是否领取过了.如果领取过了就提示"您已领取礼包了".这样就很安全了.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
试试在dlgtOutPut里lock一下。但没看明白你的线程到底做了什么。
更多追问追答
追问
就是同时调用点击按钮事件
追答
那得考虑浏览器和网站的响应速度吧,感觉你多个线程同时点并没有什么意义,你可以试试只开一个子线程,子线程里用for循环点击,点击之间sleep一定时间,但最好再间隔长些。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询