这么奢侈?开这么多线程池?
你是要干嘛····这样改改:void start()
{
ThreadPool.QueueUserWorkItem(new WaitCallback(DoWork),);static void DoWork(object state)
{
//执行我的操作
for (int i = 0; i < a.Count; i++)
{
string b= a[i].ToString();
// TODO:
}
}
}
你是要干嘛····这样改改:void start()
{
ThreadPool.QueueUserWorkItem(new WaitCallback(DoWork),);static void DoWork(object state)
{
//执行我的操作
for (int i = 0; i < a.Count; i++)
{
string b= a[i].ToString();
// TODO:
}
}
}
解决方案 »
- 【问问】客户端与服务端的那些问题
- Activex控件调用出错,对象不支持此属性或方法
- 视图创建了为什么获取不到
- GridView的分页出现问题。
- <input type="file" id="file1 />中如何获取客户机上文件的完整路径
- iis打开网站报错
- 可以获得局域网ip吗?
- 用了COUNT的SQL语句是不是不能读出COUNT列?
- 高手看一下段代码
- 看看这句到底哪里错了:commstr = "insert into users (username,sm) values('" + TextBox1.Text + "','" + TextBox2.Text + "')"
- Linq to sql 有将datetime转换为string类型方法吗?
- 关于收据打印数据内容的坐标位置调整固定
{
ThreadPool.QueueUserWorkItem(new WaitCallback(DoWork));
}
static void DoWork(object state)
{
//执行我的操作
for (int i = 0; i < a.Count; i++) {
string b= a[i].ToString();
// TODO:
}
}
如果是操作IO,外部设备比CPU慢的太多,CPU会有很多等待的时间,利用等待的时间切换到其他线程,是可以很大的提高效率的
而如果是内存操作,CPU与内存的交流速度非常快,跟CPU本身的执行基本一致,CPU一直在忙碌,你让它来回切换线程,反而降低效率