世界之窗论坛's Archiver

Arlon 发表于 2006-9-30 18:14

关于TW的多线程问题

请问,这个多线程是指UI多线程吗?IE7呢?貌似马桶2是采用的UI多线程,请问TW和马桶2的多线程有什么区别吗?有知道的高人请详细介绍下,谢谢!

UI多线程定义:
Windows 窗体中最重要的一条线程规则:除了极少数的例外情况,否则都不要在它的创建线程以外的线程中使用控件的任何成员。规则的结果是一个被包含的控件 如,包含在一个表单中的按钮 必须与包含它控件位处于同一个线程中。也就是说,一个窗口中的所有控件属于同一个 UI 线程。大部分 Windows 窗体应用程序最终都只有一个线程,所有 UI 活动都发生在这个线程上。这个线程通常称为 UI 线程。UI多线程最重要的作用是缓解假死。而不是说页面多线程下载下来,提高浏览速度。

AY 发表于 2006-9-30 18:16

应该是 UI 多线程,和 MT 的类似。

Arlon 发表于 2006-9-30 18:18

[quote]原帖由 [i]AY[/i] 于 2006-9-30 18:16 发表
应该是 UI 多线程,和 MT 的类似。 [/quote]

那为什么说只有TW2和IE7实现了多线程啊?我还以为和常规意义上的多线程是一个意思呢。

AY 发表于 2006-9-30 18:33

当时 MT2 未加入/公开 UI 多线程 :)

258369 发表于 2006-9-30 20:40

3楼说得有道理,主页还写着“目前只有IE浏览器7.0版和世界之窗浏览器2.0版采用了多线程窗口框架”

hayem 发表于 2006-9-30 20:42

这些知识我都不懂的,不过除了提高稳定性防假死外,速度的确有提高,我觉得每个标签的打开都使用了独立的UI线程,其速度很正常

backfire 发表于 2006-9-30 23:06

UI哪里能多线程? 一般都是Winsock多线程的. Win32程序设计, 最忌讳的就是UI多线程. Windows是支持多线程不假, 但在UI方面, 所有的设计都回避多线程的. VC的MFC UI部分如此, Delphi的VCL也是如此, 就连.NET的UI也是如此.当然可以通过各种同步方式实现这个, 但在UI部分, 这将是很麻烦和和buggy的, 于是各种设计基本都采用内部多线程, 但经由统一接口, 靠同步方式来对UI实现update.

anjxue 发表于 2006-9-30 23:22

这么高深的说,我只知道一个CreateThread。。

319702aa 发表于 2006-9-30 23:41

:l:sad2: 发现我对这个多线程的概念非常的不了解...
要虚心多学了:mad:

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.