List<String>,add失败?效率这么差?

问题描述

List<String>list=newList<String>();for(inti=0;i<list.Count;i++){stringv=list[0];list.RemoveAt(0);Threadt1=newThread(newParameterizedThreadStart(work));t1.IsBackground=true;t1.Start(v);}

有一个定时器每隔5分钟执行以上代码。work函数有一个list.add(v);的操作。list里面总共十个元素。程序运行20分钟,有三个元素消失了。是不是work函数的list.add(v);的操作失败了?

解决方案

解决方案二:
更正:有一个定时器每隔5秒钟执行以上代码。
解决方案三:
不会失败
解决方案四:
对于共享变量,做信号了没?
解决方案五:
引用3楼hdt的回复:

对于共享变量,做信号了没?

高手好啊!单纯往List添加元素也要做信号吗?
解决方案六:
list.RemoveAt(0);
解决方案七:
马上加个lock试试
解决方案八:
引用5楼freesarge的回复:

list.RemoveAt(0);

用一个删一个没问题吧?
解决方案九:
引用7楼helpme2004的回复:

引用5楼freesarge的回复:list.RemoveAt(0);用一个删一个没问题吧?

用一个删一个后你的i循环变量也要减1才行
解决方案十:
每删掉一个,list.Count就减一。达不到你的预期效果。
解决方案十一:
每次循环都new一个线程,你到底想干嘛?
解决方案十二:
引用3楼hdt的回复:

对于共享变量,做信号了没?

高手好啊。原来不关list的事。我在线程里面设置三个委托用于更新控件的值,可能过于频繁了,所以控件没反应了。现在只在线程里保留一个委托更新,并且用了信号量,程序终于可以正常运行了。

时间: 2025-01-14 06:48:02

List&amp;lt;String&amp;gt;,add失败?效率这么差?的相关文章

将参数值从 String 转换到 DateTime 失败???????????????

问题描述 stringtime=Convert.ToString(DateTime.Parse(txtPublishDateD.Text));sqlDataAdapter9.UpdateCommand.Parameters[4].Value=time;其中txtPublishDateD.Text是TextBox中输入的时间,为什么总是出错呢? 解决方案 解决方案二:什么错干嘛不stringtime=txtPublishDateD.Text;解决方案三:stringtime=Convert.ToS

将参数值从 String 转换到 DateTime 失败

问题描述 如果是图书入库的话呢,在每个TextBox中输入图书信息.输入publishDate:1986-7-7然后在dataGrid中显示所有图书信息.如果在dataGrid中选中一行的话呢,就把对应图书的信息,显示在每个对应的TextBox中.这个时候要是修改几个信息,重新更新数据库的话,会把时间自动改为:1986-7-70:00:00就显示了"将参数值从String转换到DateTime失败"我试了好多方法,怎么都不行啊! 解决方案 解决方案二:dateTime.Parse不行吗

IntPtr与string类型互转失败

问题描述 IntPtr转成string再转回去,值完全不一样,哪边理解错了吗? 解决方案 解决方案二:这是在分配地址,一样才奇怪了还有结贴率太低了解决方案三:引用1楼shingoscar的回复: 这是在分配地址,一样才奇怪了还有结贴率太低了 明白了,谢谢.结贴率低因为被盗号发了很多垃圾信息.

编程-String类下的split方法,我截取完字符串后把结果复制给一个数组这个数组长度会加1?

问题描述 String类下的split方法,我截取完字符串后把结果复制给一个数组这个数组长度会加1? 如题,这是代码: String s = ""A1B2C3D4E5F6G7H8""; String[] b = new String[8]; System.out.println(""b:"" + b.length); b = s.split(""[A-Z]""); System.out.

Dictionary&amp;lt;string, string&amp;gt;

Dictionary<string, string>是一个泛型 他本身有集合的功能有时候可以把它看成数组 他的结构是这样的:Dictionary<[key], [value]> 他的特点是存入对象是需要与[key]值一一对应的存入该泛型 通过某一个一定的[key]去找到对应的值 举个例子: //实例化对象 Dictionary<int, string> dic = new Dictionary<int, string>(); //对象打点添加 dic.Add

Add GUI to connect to SQL

(*********************************************************************************) (* *) (* Below is the list of support classes that can be used from within the Pascal *) (* script. There are also three support objects available: MainForm of type *

C#中List〈string〉和string[]数组之间的相互转换_C#教程

1,从System.String[]转到List<System.String> System.String[] str={"str","string","abc"}; List<System.String> listS=new List<System.String>(str);   2, 从List<System.String>转到System.String[] List<System.Str

List或数组到String的转换

在编程过程中偶尔会遇到需要将List或数组以某个字符间隔的形式将其拼接成一个字符串,比如在发送邮件时,to列表是以分号分割的字符串,然而在程序中我们可能会一List<String>或String[]的形式存在,此时就需要做List或数组到String的转换.在C#中,String类提供了一个叫Join的方法,因而我们使用一句代码就可以完成这样的工作: string result = string.Join("; ", toList.ToArray()); 但是在Java中貌

为什么一个datatable中两次使用 car.Rows.Add(newRow);发现添加的数据不在同一行。

问题描述 car.Columns.Add("线路名称",typeof(System.String));//car.Columns.Add("线路宽度",Type.GetType("System.String"));car.Columns.Add("序号(必填)",Type.GetType("System.String"));car.Columns.Add("纬度",typeof(Syst