
c# 多线程的小问题
多线程的新手。功能基本上实现了但很困惑效率的问题。可能是我理解不透彻、以下是我的疑问:我一般是使用两个按钮来实现多线程。第一个按钮用for循环绑定函数第二个按钮用for循...
多线程的新手。功能基本上实现了但很困惑效率的问题。可能是我理解不透彻、以下是我的疑问:
我一般是使用两个按钮来实现多线程。第一个按钮用for循环绑定函数
第二个按钮用for循环开启线程并且赋值
在按下F9调试确实是多线程,但某些功能上效率甚至和单线程一样!我的怀疑是这样的:是不是在线程开启后,线程执行绑定的方法,并且必须让这个方法完成之后(由于是方法是带参访问并返回我所需要的值,所以还是需要点时间的),才进入下一个线程任务?
就这个简单的问题。大侠们求告知是不是我多疑了。如果我猜对了。我应该怎么做才能让线程同时开启?
PS:我个人是不怀疑抢占资源的问题。线程中但凡有使用到控件的我都利用委托。而需要使用的数据都是在线程开启时赋予了 展开
我一般是使用两个按钮来实现多线程。第一个按钮用for循环绑定函数
第二个按钮用for循环开启线程并且赋值
在按下F9调试确实是多线程,但某些功能上效率甚至和单线程一样!我的怀疑是这样的:是不是在线程开启后,线程执行绑定的方法,并且必须让这个方法完成之后(由于是方法是带参访问并返回我所需要的值,所以还是需要点时间的),才进入下一个线程任务?
就这个简单的问题。大侠们求告知是不是我多疑了。如果我猜对了。我应该怎么做才能让线程同时开启?
PS:我个人是不怀疑抢占资源的问题。线程中但凡有使用到控件的我都利用委托。而需要使用的数据都是在线程开启时赋予了 展开
1个回答
展开全部
线程本身由于创建和切换的开销,采用多线程不会提高程序的执行速度,反而会降低速度,但是对于频繁IO操作的程序,多线程可以有效的并发。
对于包含不同任务的程序,可以考虑每个任务使用一个线程。这样的程序在设计上相对于单线程做所有事的程序来说,更为清晰明了,比如生产、消费者问题。
在实际的开发中对于性能优化的问题需要考虑到具体的场景来考虑是否使用多线程技术。
也就是说线程和效率不是成正比对应的
对于包含不同任务的程序,可以考虑每个任务使用一个线程。这样的程序在设计上相对于单线程做所有事的程序来说,更为清晰明了,比如生产、消费者问题。
在实际的开发中对于性能优化的问题需要考虑到具体的场景来考虑是否使用多线程技术。
也就是说线程和效率不是成正比对应的
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询