您的位置:首页 > 编程语言 > VB

[VB.NET]关于线程和委托的问题

2008-12-27 14:06 309 查看



<script type="text/javascript"><!--
google_ad_client = "pub-8333940862668978";
/* 728x90, 创建于 08-11-30 */
google_ad_slot = "4485230109";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>

关于线程和委托的问题
问个问题 我感觉多线程处理数据的时候 还是有延时 我在思考如果线程里用委托 委托还是交给主线程来处理把?这样会不会效率好些?
__________________________________________________________________________
up
__________________________________________________________________________
使用多个线程一定会降低总体速度,

不过使用多线程可以做到不致于因为"假死"而给用户带来不好的感觉.
__________________________________________________________________________
使用多个线程一定会降低总体速度,

不过使用多线程可以做到不致于因为"假死"而给用户带来不好的感觉.
======================================================================
不赞同的你观点,多线程不仅仅是 "做到不致于因为 ''假死 '' ",假如,编写一个程序,即需要检查网络状态又需要接收,发送数据,你使用3个子线程分别作上面的步骤,主线程(UI线程)只负责显示结果,必然比你将这些都放在主线程中效率高,你所说的只是开一个子线程,加主线程只有2个线程这样才会降低速度.
__________________________________________________________________________
呵呵,多线程,就像你要在打字的过程中可能要把杯子拿过来喝水,喝好后再打字一样.
__________________________________________________________________________
使用多个线程一定会降低总体速度
----------------

roki_chen你的理解是用户层面上的...不是计算机层面...

必然比你将这些都放在主线程中效率高
----------------------
效率高是很可能的...但人家平民说的是“总体速度”...用较多的线程可以更多利用计算机空闲时间所以能提高效率...但你认为开新线程、额外分配资源、回收更多垃圾要不要时间呢?
__________________________________________________________________________
呵呵,多线程,就像你要在打字的过程中可能要把杯子拿过来喝水,喝好后再打字一样.
------------------------------------------------------------------------------
相对于单CPU的机上是可以这么说。
__________________________________________________________________________
谢谢楼上各位的回答

我先说下我的程序逻辑吧 我试过2套 因为应用是client端通过sock和server通信 我这边的client尝试过主线程接受数据并分析数据然后显示数据 处理的数据有不同类型 把其中一个耗时的单独一个线程去处理 但是这样程序运行使用当中 由于某时刻数据量大 并且用户还要操作界面 因而造成不相应就是你们说的假死吧
现在我又尝试着用两个线程 既主线程接收数据 然后放入缓冲区 单独开一个线程处理数据并显示数据 但是这样和前一种比起来 是不会有假死状态了 但是调试发现 运行一段时间后 缓冲区里积压了大量等待处理的数据 因而就是我说的延时
所以我现在在寻求很好的一个解决方法。
我在想是不是主线程有优先权?所以我用第一种方法的时候 没有延时?其实假如用户不进行任何操作 软件是不会假死的 但是用户还需要去点击进行查询 下发命令等操作。
所以我想问大家 如果线程里用委托 委托还是交给主线程来处理把?这样会不会效率好些?具体就是主线程接收数据仍放到缓冲区 但是线程处理缓冲区的时候 直接用委托 这样是又交给主线城处理了么?
__________________________________________________________________________
vrhero(我是真小人/最烦伪君子...)
==================================
我当然是在说程序,单核的CPU用虚拟机技术,本来就不存在真实的多线程
__________________________________________________________________________
vrhero(我是真小人/最烦伪君子...)
这里是讨论程序,自然我将他所说的“总体速度“是认为是,单个程序在处理事件的总体,如果你是说计算机整个的整体,那没什么好说的,单核无所谓多线程
__________________________________________________________________________
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息