我有四个线程,主线程(从ArrayList中读对象的值)、插入新对象入队列进程、更新队列中对象值进程、删除队列中对象进程。我怎样使他们能同步执行。
解决方案 »
- C#程序在WIN7中运行的问题
- c#读取文件时候出现乱码
- treeview 重新加载
- 请问,在C#(VS 2008)中,如何通过ADO连接到ORACLE DB,如何将数据填充到网格中(如何进行DATA的控制ADD/EDIT/DELETE)?
- 关于foreach(Datarow row in ds.Tables[0].Rows)理解问题,请高手指教!
- 关于动态控件数组的卸载
- datagrid右击处理
- C#如何获得选中部分的html源码,求教
- [all scores showhand]一个关于排序的算法问题
- ■■■怎样使DataGrid只显示DataSet的一部分列???■■■
- 问一个关于windows service 的问题
- 拿分的C#菜鸟问题
笔误,改为:
我有四个线程,主线程(从ArrayList中读对象的值)、插入新对象入队列进程、更新队列中对象值线程、删除队列中对象线程。我怎样使他们能同步执行。
private ArrayList list = new ArrayList();// 读取对象函数
Read()
{
lock(list)
{
for(int i = 0; i < list.count; i++)
{
// 读对象,代码省略
}
}
}/// 更新对象线程启动函数
Update()
{
lock(list)
{
for(int i = 0; i < list.count; i++)
{
// 读对象,本改变符合要求的对象的值代码省略
}
}
}/// 删除对象线程启动函数Delete()
{
lock(list)
{
for(int i = 0; i < list.count; i++)
{
// 读对象,本改变符合要求的对象的值代码省略
}
}
}/// 插入对象线程启动函数
Insert()
{
lock(list)
{
A a = new A();
list.Add(a);
}
}它们执行时间是随机的。