C#中多线程修改int变量(计数器)的方法

在C#开发中,我们有时候会用到多线程。在某些时候,我们会有个全局的int变量用来计数,然后每个线程都能去修改它。通常我们的做法是使用lock来锁定,或者直接将int变量添加volatile关键字来修饰,但是实际上这两种都不是最好的方法。


1、使用lock关键字

public int counter = 0;

object locker = new object();

lock(locker)

{

    counter ++;

}


2、使用volatile关键字

public volatile int counter = 0;


以上两种方法其实都可能会出问题,会导致计数器变量counter 不准确。最好用的办法应该是用Interlocked.Increment(ref counter);



  1. 本网站所收集的部分资料来源于互联网,本站不对其真实性负责,也不构成任何其他建议。如果您发现有侵犯您权益的内容,请与我们取得联系,我们会及时修改或删除。
  2. 传递知识、传递力量,欢迎各位网友对本站的文章进行转载和分享。
  3. 本站QQ群交流群:904314688  群号:904314688
发表评论
 
评论列表(目前共有 条评论)
暂时还没有评论哦~

文章搜索

商家广告


版权所有:秋风雅居 (www.198933.com) ©2024 All Rights Reserved.

粤ICP备20031662号