C#多线程同用一个全局变量,如何保持每个线程的变量不会被别的线程把值覆盖掉

 我来答
百度网友faadf46
高粉答主

2020-05-05 · 说的都是干货,快来关注
知道答主
回答量:4556
采纳率:0%
帮助的人:65.6万
展开全部

1、我们在程序顶部写上线程的引入命名空间

2、然后我们就可以正常创建线程等操作。

3、接着就可以判断状态,只有线程在执行才开始。

4、然后就可以判断线程暂停的时间。

5、接着就可以利用线程的About方法进行终止。

6、并给出相应的是即可成功终止线程。

java发烧友
推荐于2017-10-06 · TA获得超过225个赞
知道小有建树答主
回答量:193
采纳率:100%
帮助的人:147万
展开全部
如果是全局变量,而各个线程又都要能读写,而且不能被别的线程覆盖掉,那只能是加锁,
lock(全局变量)
{
doSomeThing();
}
但是这样会影响多线程的并发,如果是私有变量就不存在这个问题了,
得看你具体要求做什么了
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
哲事姓无
2012-12-18 · TA获得超过1176个赞
知道小有建树答主
回答量:903
采纳率:100%
帮助的人:427万
展开全部
把变量声明在各自的线程函数中就可以了。
如果是全局变量,各个线程都会去读写的,怎么能保证不会被覆盖呢。
如果只在初始化时被赋值,以后不可能会去写的字段话,可以使用readonly标记。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
huiyangzhuang
2012-12-18 · TA获得超过435个赞
知道小有建树答主
回答量:433
采纳率:0%
帮助的人:247万
展开全部
仅供参考:
1. 可以在类里面声明一个静态的全局变量。
public static object obj=引用类型;

2.在每个方法体内,声明各自的局部变量。

3.加上Lock锁,可以确保当前线程操作的时候,别的线程无法操作
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kuen21
2012-12-18
知道答主
回答量:15
采纳率:0%
帮助的人:14.3万
展开全部
lock(对象){
代码
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式