c# 线程共享数值
想做一个多个线程公用一个数组,有很多个线程。通过不同的标志符来用一个数组。每几个线程就公用一个。而且这个数组在用的时候建立。不用的时候就释放。感觉好有难度哦!一点思路都没...
想做一个多个线程公用一个数组,有很多个线程。通过不同的标志符来用一个数组。每几个线程就公用一个。而且这个数组在用的时候建立。不用的时候就释放。感觉好有难度哦!一点思路都没有
展开
2个回答
展开全部
共享数据不难,只需要在创建线程对象的时候将你需要共享的数据对象在启动线程前(通常是构造线程对象的时候)传入即可。但是必须注意:
1. 共享的数据必须是线程安全的,因为涉及两个线程的并发访问。
2. 共享的数据内部的其它对象引用也必须是线程安全的,假如你需要访问它们。
贴个代码:
Object shareObject;// init object you need.
var t1 = new System.Threading.Thread(arg =>
{// arg is shareObject
});
var t2 = new System.Threading.Thread(arg =>
{// arg is shareObject
});
t1.Start(shareObject);
t2.Start(shareObject);
1. 共享的数据必须是线程安全的,因为涉及两个线程的并发访问。
2. 共享的数据内部的其它对象引用也必须是线程安全的,假如你需要访问它们。
贴个代码:
Object shareObject;// init object you need.
var t1 = new System.Threading.Thread(arg =>
{// arg is shareObject
});
var t2 = new System.Threading.Thread(arg =>
{// arg is shareObject
});
t1.Start(shareObject);
t2.Start(shareObject);
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询