??xml version="1.0" encoding="utf-8" standalone="yes"?>日韩欧美亚洲综合久久影院d3,国产99精品久久,国产精品美女久久久http://www.shnenglu.com/changshoumeng/category/12898.html键盘为琴Q代码作Ԍ (zhn)?zhn)Q是我的心, 在ؓ你弹? 从main开始,无限循环Q? 无限{待Q唯? 是我的常? zh-cnTue, 18 May 2010 07:29:33 GMTTue, 18 May 2010 07:29:33 GMT60如何改变对话框的背景颜色http://www.shnenglu.com/changshoumeng/articles/115559.html长寿?/dc:creator>长寿?/author>Sun, 16 May 2010 23:53:00 GMThttp://www.shnenglu.com/changshoumeng/articles/115559.htmlhttp://www.shnenglu.com/changshoumeng/comments/115559.htmlhttp://www.shnenglu.com/changshoumeng/articles/115559.html#Feedback0http://www.shnenglu.com/changshoumeng/comments/commentRss/115559.htmlhttp://www.shnenglu.com/changshoumeng/services/trackbacks/115559.html如何改变对话框的背景颜色


---- Ҏ(gu)一Q调?/span>CWinAppcȝ成员函数SetDialogBkColor来实现?/span>
---- 其中函数的第一个参数指定了背景颜色Q第二个参数指定?span style="COLOR: red">文本颜色?/span>

下面的例子是应用程序对话框讄色背景和U色文本Q步骤如下:

----
?/span> 新徏一个基?/span>Dialog?/span>MFC AppWizard应用E序ExampleDlg?/span>

----
?/span> ?/span>CExampleDlgApp ::InitInstance()中添加如下代码:

BOOL CExampleDlgApp: : InitInstance ( )
{

        CExampleDlgDlg dlg;
        m_pMainWnd = &dlg;

//
先于DoModal()调用Q将对话框设|ؓ蓝色背景、红色文?/span>
        SetDialogBkColor(RGB(0,0,255),RGB(255,0,0));
        int nResponse = dlg.DoModal();

}

----
~译q运行,此时对话框的背景色和文本色已发生了改变。值得注意的是Q在调用DoModal()之前必须先调?/span>SetDialogBkColorQ且此方法是改变应用程序中所有的对话框颜Ԍq不能针Ҏ(gu)一个指定的对话框?/span>

 

---- Ҏ(gu)二:重蝲OnPaint()Q即WM_PAINT消息。有关代码如下(以上例工Eؓ准)Q?/span>

void CExampleDlgDlg::OnPaint()
{
        if (IsIconic())

else
{
                CRect rect;
                CPaintDC dc(this);
                GetClientRect(rect);
                dc.FillSolidRect(rect,RGB(0,255,0)); //
讄为绿色背?/span>

                CDialog::OnPaint();
}


----
Ҏ(gu)三:重蝲OnCtlColor (CDC* pDC, CWnd* pWnd, UINT nCtlColor)Q即WM_CTLCOLOR消息?/span>

具体步骤如下Q以上例工程为准Q:
----
①在CExampleDlgDlg的头文g中,d一CBrush的成员变量:

class CExampleDlgDlg : public CDialog
{
...
protected:
CBrush m_brush;
...
} ;


----
②在OnInitDialog()函数中添加如下代码:
BOOL CExampleDlgDlg::OnInitDialog()
{
...
// TODO: Add extra initialization here
m_brush.CreateSolidBrush(RGB(0, 255, 0)); //
生成一l色刷子
...
}

----
③利?/span>ClassWizard重蝲OnCtlColor()Q即WM_CTLCOLOR消息Q?/span>
HBRUSH CExampleDlgDlg::OnCtlColor
(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
/*
**
q里不必~写M代码Q?/span>
**
下行代码要注释掉
** HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
*/

return m_brush; //
q加l色刷子
}


----
Ҏ(gu)四:q是重蝲OnCtlColor (CDC* pDC, CWnd* pWnd, UINT nCtlColor)Q即WM_CTLCOLOR消息?/span>

具体步骤如下Q以上例工程为准Q:
----
步骤①、②同上Ҏ(gu)三中的步骤①、②?/span>

----
步骤③利?/span>ClassWizard重蝲OnCtlColor()Q即WM_CTLCOLOR消息Q时则有些不同:

HBRUSH CExampleDlgDlg::OnCtlColor
(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

//
在这加一条是否ؓ对话框的判断语句
if(nCtlColor ==CTLCOLOR_DLG)
return m_brush; //
q加l色刷子
return hbr;

}

----
~译q运行即可?/span>
----
关于如何改变对话框背景颜色的问题Q可能还有很多种不同Ҏ(gu)可以实现Q笔者在q仅丑և四种常见的方法。其中方法三的编E似乎有点不太规范,Ҏ(gu)四则要比Ҏ(gu)三正l些Q笔者这LҎ(gu)举例是ؓ了拓?/span>VC~程爱好者特别是初学者的~程思\Q?/span>

 

 

 

 



]]>
MFC多线E有xȝhttp://www.shnenglu.com/changshoumeng/articles/115442.html长寿?/dc:creator>长寿?/author>Sat, 15 May 2010 03:40:00 GMThttp://www.shnenglu.com/changshoumeng/articles/115442.htmlhttp://www.shnenglu.com/changshoumeng/comments/115442.htmlhttp://www.shnenglu.com/changshoumeng/articles/115442.html#Feedback0http://www.shnenglu.com/changshoumeng/comments/commentRss/115442.htmlhttp://www.shnenglu.com/changshoumeng/services/trackbacks/115442.html阅读全文

]]>
W三? 快跑和等?/title><link>http://www.shnenglu.com/changshoumeng/articles/115266.html</link><dc:creator>长寿?/dc:creator><author>长寿?/author><pubDate>Thu, 13 May 2010 02:51:00 GMT</pubDate><guid>http://www.shnenglu.com/changshoumeng/articles/115266.html</guid><wfw:comment>http://www.shnenglu.com/changshoumeng/comments/115266.html</wfw:comment><comments>http://www.shnenglu.com/changshoumeng/articles/115266.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/changshoumeng/comments/commentRss/115266.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/changshoumeng/services/trackbacks/115266.html</trackback:ping><description><![CDATA[     摘要: W三?nbsp;  快跑和等?资源|络攉 感谢原创?转自http://blog.sina.com.cn/s/blog_5678943c0100d4po.html 本章回答了如下几个问题:   ?nbsp;如何{待U程序的l束Qؓ什么通过查询方式判断U程是否l止?#8220;看似I闲实则忙碌”Q这有何不妥Q怎样改进Q才能ɽ{待变得有效率v来? &...  <a href='http://www.shnenglu.com/changshoumeng/articles/115266.html'>阅读全文</a><img src ="http://www.shnenglu.com/changshoumeng/aggbug/115266.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/changshoumeng/" target="_blank">长寿?/a> 2010-05-13 10:51 <a href="http://www.shnenglu.com/changshoumeng/articles/115266.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>W二? U程的第一ơ接?/title><link>http://www.shnenglu.com/changshoumeng/articles/115262.html</link><dc:creator>长寿?/dc:creator><author>长寿?/author><pubDate>Thu, 13 May 2010 02:30:00 GMT</pubDate><guid>http://www.shnenglu.com/changshoumeng/articles/115262.html</guid><wfw:comment>http://www.shnenglu.com/changshoumeng/comments/115262.html</wfw:comment><comments>http://www.shnenglu.com/changshoumeng/articles/115262.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/changshoumeng/comments/commentRss/115262.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/changshoumeng/services/trackbacks/115262.html</trackback:ping><description><![CDATA[     摘要: W二?nbsp;  U程的第一ơ接?资源|络攉 感谢原创?转自http://blog.sina.com.cn/s/blog_5678943c0100d4po.html 本章回答了如下几个问题:   ?nbsp;怎样建立一个线E?怎样l止一个线E?U程的退出码如何获取Q?  ?nbsp;使用多线E容易引h样的问题?如何解决Q?  ?...  <a href='http://www.shnenglu.com/changshoumeng/articles/115262.html'>阅读全文</a><img src ="http://www.shnenglu.com/changshoumeng/aggbug/115262.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/changshoumeng/" target="_blank">长寿?/a> 2010-05-13 10:30 <a href="http://www.shnenglu.com/changshoumeng/articles/115262.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>W一? Z么要“千头万l?/title><link>http://www.shnenglu.com/changshoumeng/articles/115261.html</link><dc:creator>长寿?/dc:creator><author>长寿?/author><pubDate>Thu, 13 May 2010 02:28:00 GMT</pubDate><guid>http://www.shnenglu.com/changshoumeng/articles/115261.html</guid><wfw:comment>http://www.shnenglu.com/changshoumeng/comments/115261.html</wfw:comment><comments>http://www.shnenglu.com/changshoumeng/articles/115261.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/changshoumeng/comments/commentRss/115261.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/changshoumeng/services/trackbacks/115261.html</trackback:ping><description><![CDATA[<p class=MsoListParagraph style="MARGIN: 0cm 0cm 0pt 44.25pt; TEXT-INDENT: -44.25pt; LINE-HEIGHT: 15pt; TEXT-ALIGN: center; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-char-indent-count: 0; mso-outline-level: 2; mso-list: l0 level1 lfo1" align=center><span lang=EN-US style="FONT-SIZE: 13.5pt; COLOR: #494949; FONT-FAMILY: '微Y雅黑','sans-serif'; mso-bidi-font-family: 微Y雅黑; mso-font-kerning: 0pt"><span style="mso-list: Ignore">W一?span style="FONT: 7pt 'Times New Roman'">  </span></span></span><span style="FONT-SIZE: 13.5pt; COLOR: #494949; FONT-FAMILY: '微Y雅黑','sans-serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">Z么要“千头万A”<span lang=EN-US><o:p></o:p></span></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: right" align=right><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">资源|络攉</span><font face=Calibri> </font><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">感谢原创?/span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: right" align=right><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">转自</span><span lang=EN-US><font face=Calibri>http://blog.sina.com.cn/s/blog_5678943c0100d4po.html</font></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 3.75pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto" align=left><span style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 楷体_GB2312; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt">本章回答了如下几个问题:</span><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体"><o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 3.75pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto" align=left><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 楷体_GB2312; mso-fareast-font-family: 楷体_GB2312"> </span><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 楷体_GB2312; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"> </span><span style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 楷体_GB2312; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt">?什么是多Q务操作系l?多Q务操作系l有哪些cdQ它们有何区别?</span><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体"><o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 3.75pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto" align=left><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 楷体_GB2312; mso-fareast-font-family: 楷体_GB2312"> </span><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 楷体_GB2312; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"> </span><span style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 楷体_GB2312; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt">?Z么要使用多线E呢Qؓ什么不使用多进E?U程、进E,它们到底是什么样的东东?</span><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体"><o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 3.75pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto" align=left><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 楷体_GB2312; mso-fareast-font-family: 楷体_GB2312"> </span><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 楷体_GB2312; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"> </span><span style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 楷体_GB2312; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt">?多线E是如何实现的?U程是如何切换的Q效率怎样Q?/span><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体"><o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 3.75pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto" align=left><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 楷体_GB2312; mso-fareast-font-family: 楷体_GB2312"> </span><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 楷体_GB2312; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"> </span><span style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 楷体_GB2312; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt">?多线E设计是如此的诱人,N什么代价也不用付出Q怎样才能很好地进行多U程设计呢?</span><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体"><o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 3.75pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto" align=left><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体"> <o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 3.75pt; TEXT-INDENT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto" align=left><strong><span style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: simsun">合作?/span></strong><strong><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体">[cooperative]</span></strong><strong><span style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: simsun">多Q务和抢先?/span></strong><strong><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体">[preemptive]</span></strong><strong><span style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: simsun">多Q务有何不同?</span></strong><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体"><o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 3.75pt; TEXT-INDENT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto" align=left><span style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: simsun">两者的最大区别是<span style="BACKGROUND: lime; mso-highlight: lime">谁来把握</span></span><span lang=EN-US style="BACKGROUND: lime; COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-highlight: lime; mso-fareast-font-family: 宋体">CPU</span><span style="BACKGROUND: lime; COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-highlight: lime; mso-ascii-font-family: simsun">的分?/span><span style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: simsun">。前者由E序员的</span><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体">“</span><span style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: simsun">举止良好</span><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体">”</span><span style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: simsun">才可做到Q后者则由操作系l决定,可以应用E序?/span><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体">CPU</span><span style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: simsun">分nl别人?/span><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体"><o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 3.75pt; TEXT-INDENT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto" align=left><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体">Microsoft Windows</span><span style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: simsun">的前三个版本Q?/span><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体">1</span><span style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: simsun">?/span><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体">2</span><span style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: simsun">?/span><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体">3</span><span style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: simsun">Q属于合作型多Q务操作系l,</span><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体">Windows4.0</span><span style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: simsun">Q即</span><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体">Windows</span><span style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: simsun">Q?/span><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体">95</span><span style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: simsun">后均属于强先式多d操作pȝ?/span><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体"><o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 3.75pt; TEXT-INDENT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto" align=left><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体"> </span><span style="COLOR: red; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: simsun">CQ一个永q有反映?/span><span lang=EN-US style="COLOR: red; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体">UI</span><span style="COLOR: red; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: simsun">Q?/span><span lang=EN-US style="COLOR: red; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体">User Interface</span><span style="COLOR: red; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: simsun">Q是很重要的?/span><span lang=EN-US style="COLOR: red; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体"><o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 3.75pt; TEXT-INDENT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto" align=left><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体"> </span><strong><span style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: simsun">U程和进E有何不同?</span></strong><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体"><o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 3.75pt; TEXT-INDENT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto" align=left><span style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: simsun">?/span><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体">Win32</span><span style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: simsun">的角度看Q?span style="BACKGROUND: lime; mso-highlight: lime">q程拥有内存和资源?/span></span><span style="COLOR: red; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: simsun">资源则包括核心对象(如文件句柄和U程Q、用戯源(如对话框和字W串Q?/span><span lang=EN-US style="COLOR: red; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体">GDI</span><span style="COLOR: red; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: simsun">资源Q如</span><span lang=EN-US style="COLOR: red; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体">Device Context</span><span style="COLOR: red; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: simsun">?/span><span lang=EN-US style="COLOR: red; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体">brushes</span><span style="COLOR: red; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: simsun">Q?/span><span lang=EN-US style="COLOR: red; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体"><o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 3.75pt; TEXT-INDENT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto" align=left><span style="BACKGROUND: lime; COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-highlight: lime; mso-ascii-font-family: simsun">q程本nq不能够执行Q它只是提供一个安|内存和U程的地斏V?/span><span style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: simsun">Q进E就是一大堆对象的拥有权的集合。也是_q程可以拥有内存上下文、文件句柄、线E及一大串</span><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体">DLL</span><span style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: simsun">模块Q被载入到这一q程地址I间中)?/span><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体"><o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 3.75pt; TEXT-INDENT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto" align=left><span style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: simsun">q程和内存ƈ没有真正</span><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体">“</span><span style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: simsun">?/span><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体">”</span><span style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: simsun">什么事情?span style="BACKGROUND: lime; mso-highlight: lime">一?/span></span><span lang=EN-US style="BACKGROUND: lime; COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-highlight: lime; mso-fareast-font-family: 宋体">CPU</span><span style="BACKGROUND: lime; COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-highlight: lime; mso-ascii-font-family: simsun">开始执行代码,你就拥有了一?/span><span lang=EN-US style="BACKGROUND: lime; COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-highlight: lime; mso-fareast-font-family: 宋体">“</span><span style="BACKGROUND: lime; COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-highlight: lime; mso-ascii-font-family: simsun">U程</span><span lang=EN-US style="BACKGROUND: lime; COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-highlight: lime; mso-fareast-font-family: 宋体">”</span><span style="BACKGROUND: lime; COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-highlight: lime; mso-ascii-font-family: simsun">。在同一旉同一q程Q你可以拥有一大把U程Q执行同一D代?/span><span style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: simsun">?/span><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体"><o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 3.75pt; TEXT-INDENT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto" align=left><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体"> </span><strong><span style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: simsun">Z么不使用多个q程Q?/span></strong><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体"><o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 3.75pt; TEXT-INDENT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto" align=left><span style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: simsun">较之q程Q线E轻ѝh(hun)廉,启动速度快,退出比较快Q对pȝ资源的冲L较小?/span><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体"><o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 3.75pt; TEXT-INDENT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto" align=left><span style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: simsun">如果使用多进E,最困难的问题是如何把窗口句柄交l另一个进E。在</span><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体">Win32</span><span style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: simsun">中,句柄只在其诞生地Q进E中Q才有意义。这是一U安全警戒,避免某个q程有意无意地危及到另一个进E的资源?/span><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体"><o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 3.75pt; TEXT-INDENT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto" align=left><span style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: simsun">Z分nH口句柄Q你必须明明白白C生该句柄的一个副本,q且可以被其他进E用。在一个多U程E序中,所有线E都可以使用q个H口的句?/span><span style="COLOR: red; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: simsun">Q因为句柄和U程生活在同一个进E中</span><span style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: simsun">?/span><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体"><o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 3.75pt; TEXT-INDENT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto" align=left><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体"> </span><span style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: simsun">如果两个U程分属不同的进E,那它们通常没有办法׃nM内存。不?span style="BACKGROUND: lime; mso-highlight: lime">q程间如果要通讯</span>Q唯有依赖特别的设计Q之拥有共享内存(</span><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体">shared memory</span><span style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: simsun">Q?/span><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体"><o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 3.75pt; TEXT-INDENT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto" align=left><span style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: simsun">如果<span style="BACKGROUND: lime; mso-highlight: lime">两线E属于同一q程Q它们将׃n所有的内存Q包括全局变量、静态变?/span>Q?/span><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体"><o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 3.75pt; TEXT-INDENT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto" align=left><strong><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体">Context Switching</span></strong><strong><span style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: simsun">?/span></strong><strong><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体">Context Switch</span></strong><strong><span style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: simsun">效率</span></strong><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体"><o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 3.75pt; TEXT-INDENT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto" align=left><span style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: simsun">要切换不同的U程Q操作系l应先切换该U程所隶属之进E的内存Q然后恢复该U程存放?/span><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体">CONTEXT</span><span style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: simsun">l构中的寄存器倹{此q程UCؓ</span><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体">context switch</span><span style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: simsun">?/span><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体"><o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 3.75pt; TEXT-INDENT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto" align=left><span style="COLOR: red; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: simsun">注:</span><span lang=EN-US style="COLOR: red; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体">CONTEXT</span><span style="COLOR: red; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: simsun">l构中保存了该线E上ơ被打断时线E当时的状态,也就?/span><span lang=EN-US style="COLOR: red; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体">CPU</span><span style="COLOR: red; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: simsun">内所有寄存器的内宏V?/span><span lang=EN-US style="COLOR: red; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体"><o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 3.75pt; TEXT-INDENT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto" align=left><span style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: simsun">当然Q天下没有免费的午餐Q线E切换时都要~点效率E金?/span><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体"><o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 3.75pt; TEXT-INDENT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto" align=left><span style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: simsun">对于?/span><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体">CPU</span><span style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: simsun">而言Q抢先式多Q务?sh)脑看v来可以同时处理多个Q务。但微观上看QQ一时刻Q?/span><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体">CPU</span><span style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: simsun">只能做一件事?/span><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体"><o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 3.75pt; TEXT-INDENT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto" align=left><span style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: simsun">?/span><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体">CPU</span><span style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: simsun">的好处是Q?/span><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体">CPU</span><span style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: simsun">多Q就有越多线E可以同时执行,不需?/span><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体">context switch</span><span style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: simsun">Q从而提高了pȝ效率?/span><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体"><o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 3.75pt; TEXT-INDENT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto" align=left><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体"> </span><strong><span style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: simsun">竞争条gQ?/span></strong><strong><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体">Race Conditions</span></strong><strong><span style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: simsun">Q和<span style="BACKGROUND: lime; mso-highlight: lime">原子操作</span>Q?/span></strong><strong><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体">Atomic Operations</span></strong><strong><span style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: simsun">Q?/span></strong><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体"><o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 3.75pt; TEXT-INDENT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto" align=left><span style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: simsun">注意在多d操作pȝ中,<span style="BACKGROUND: lime; mso-highlight: lime">一?/span></span><span lang=EN-US style="BACKGROUND: lime; COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-highlight: lime; mso-fareast-font-family: 宋体">C</span><span style="BACKGROUND: lime; COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-highlight: lime; mso-ascii-font-family: simsun">指o一定可以安全执行完?/span><span style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: simsun">Q而不在乎</span><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体">context switch</span><span style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: simsun">是否发生?/span><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体"><o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 3.75pt; TEXT-INDENT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto" align=left><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体"> </span><strong><span style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: simsun">好消息与坏消?/span></strong><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体"><o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 3.75pt; TEXT-INDENT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto" align=left><span style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: simsun">使用U程q没有代h(hun)?span style="BACKGROUND: lime; mso-highlight: lime">采用多线E设计往往会加大程序设计的复杂性,</span>必须做到心_ֿ安排Q才能实现预期目标?/span><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体"><o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto" align=left><span style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: simsun; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: simsun">成功的秘诀是小心地规划Q谁要什么?何时要?怎么要?</span><span lang=EN-US style="COLOR: #494949; LINE-HEIGHT: 150%; FONT-FAMILY: 'simsun','serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: 宋体"><o:p></o:p></span></p> <img src ="http://www.shnenglu.com/changshoumeng/aggbug/115261.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/changshoumeng/" target="_blank">长寿?/a> 2010-05-13 10:28 <a href="http://www.shnenglu.com/changshoumeng/articles/115261.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>q程、线E概忉|问?/title><link>http://www.shnenglu.com/changshoumeng/articles/115252.html</link><dc:creator>长寿?/dc:creator><author>长寿?/author><pubDate>Thu, 13 May 2010 01:19:00 GMT</pubDate><guid>http://www.shnenglu.com/changshoumeng/articles/115252.html</guid><wfw:comment>http://www.shnenglu.com/changshoumeng/comments/115252.html</wfw:comment><comments>http://www.shnenglu.com/changshoumeng/articles/115252.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/changshoumeng/comments/commentRss/115252.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/changshoumeng/services/trackbacks/115252.html</trackback:ping><description><![CDATA[<p class=MsoNormal style="MARGIN: 0cm 0cm 15.6pt; TEXT-ALIGN: center; mso-para-margin-bottom: 1.0gd" align=center><span style="FONT-SIZE: 12pt; FONT-FAMILY: 黑体">q程、线E概忉|问?span lang=EN-US><o:p></o:p></span></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 15.6pt; mso-para-margin-bottom: 1.0gd"><strong style="mso-bidi-font-weight: normal"><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-bidi-font-size: 10.0pt; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">d概念</span></strong><span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">Q?/span><span lang=EN-US style="FONT-SIZE: 9pt"><font face=Calibri>task</font></span><span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">Q?/span><strong style="mso-bidi-font-weight: normal"><span lang=EN-US style="mso-bidi-font-size: 10.0pt"><o:p></o:p></span></strong></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><span lang=EN-US><span style="mso-tab-count: 1"><font face=Calibri>         </font></span></span><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">d是由软g完成的一个活动,<strong style="mso-bidi-font-weight: normal"><em style="mso-bidi-font-style: normal"><span style="COLOR: red">是一pd辑ֈ某种共同目的的操?/span></em></strong>。一个Q务既可以׃个进E实玎ͼ也可以作Z个线E来实现?/span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 15.6pt; mso-para-margin-bottom: 1.0gd"><strong style="mso-bidi-font-weight: normal"><span lang=EN-US style="mso-bidi-font-size: 10.0pt"><o:p><font face=Calibri> </font></o:p></span></strong></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 15.6pt; mso-para-margin-bottom: 1.0gd"><strong style="mso-bidi-font-weight: normal"><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-bidi-font-size: 10.0pt; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">q程概念</span></strong><strong style="mso-bidi-font-weight: normal"><span lang=EN-US style="mso-bidi-font-size: 10.0pt"><font face=Calibri> </font></span></strong><span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">Q?/span><span lang=EN-US style="FONT-SIZE: 9pt"><font face=Calibri>process</font></span><span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">Q?/span><strong style="mso-bidi-font-weight: normal"><span lang=EN-US style="mso-bidi-font-size: 10.0pt"><o:p></o:p></span></strong></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 15.6pt; mso-para-margin-bottom: 1.0gd"><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-bidi-font-size: 10.0pt; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin"> <strong style="mso-bidi-font-weight: normal"> <em style="mso-bidi-font-style: normal"><span style="COLOR: red">q程是表C源分配的基本单位</span></em>Q?/strong>又是调度q行的基本单位。例如,用户q行自己的程序,pȝ创Z个进E,qؓ它分配资源,包括各种表格、内存空间、磁盘空间?/span><span lang=EN-US style="mso-bidi-font-size: 10.0pt"><font face=Calibri>I</font></span><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-bidi-font-size: 10.0pt; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">Q?/span><span lang=EN-US style="mso-bidi-font-size: 10.0pt"><font face=Calibri>O</font></span><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-bidi-font-size: 10.0pt; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">讑֤{。然后,把该q程放hq程的就l队列。进E调度程序选中它,为它分配</span><span lang=EN-US style="mso-bidi-font-size: 10.0pt"><font face=Calibri>CPU</font></span><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-bidi-font-size: 10.0pt; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">以及其它有关资源Q该q程才真正运行。所以,q程是系l中的ƈ发执行的单位?/span><span lang=EN-US style="mso-bidi-font-size: 10.0pt"><font face=Calibri> </font></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 15.6pt; mso-para-margin-bottom: 1.0gd"><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin"> ?/span><span lang=EN-US><font face=Calibri>Mac</font></span><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">?/span><span lang=EN-US><font face=Calibri>Windows NT</font></span><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">{采用微内核l构的操作系l中Q进E的功能发生了变化:它只是资源分配的单位Q而不再是调度q行的单位。在微内核系l中Q真正调度运行的基本单位是线E。因此,实现q发功能的单位是U程?/span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 15.6pt; mso-para-margin-bottom: 1.0gd"><strong style="mso-bidi-font-weight: normal"><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">U程概念</span></strong><span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">Q?/span><span lang=EN-US style="FONT-SIZE: 9pt"><font face=Calibri>tread</font></span><span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">Q?/span><strong style="mso-bidi-font-weight: normal"><span lang=EN-US><o:p></o:p></span></strong></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 15.6pt; mso-para-margin-bottom: 1.0gd"><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">  <strong style="mso-bidi-font-weight: normal"><em style="mso-bidi-font-style: normal"><span style="COLOR: red">U程</span></em></strong>是进E中执行q算的最单位,亦即<strong style="mso-bidi-font-weight: normal"><em style="mso-bidi-font-style: normal"><span style="COLOR: red">执行处理度的基本单位</span></em></strong>。如果把q程理解为在逻辑上操作系l所完成的Q务,那么U程表示完成该Q务的许多可能的子d之一。例如,假设用户启动了一个窗口中的数据库应用E序Q操作系l就对数据库的调用表示Z个进E。假讄戯从数据库中生一份工资单报表Qƈ传到一个文件中Q这是一个子dQ在产生工资单报表的q程中,用户又可以输人数据库查询hQ这又是一个子d。这P操作pȝ则把每一个请求――工资单报表和新输h的数据查询表CZؓ数据库进E中的独立的U程。线E可以在处理器上独立调度执行Q这P在多处理器环境下允许几个线E各自在单独处理器上q行?span style="COLOR: red">操作pȝ提供U程是Z方便而有效地实现q种q发?/span></span><span style="COLOR: red"><font face=Calibri> </font></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 15.6pt; mso-para-margin-bottom: 1.0gd"><strong style="mso-bidi-font-weight: normal"><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">q程和线E的关系</span><span lang=EN-US><font face=Calibri> <o:p></o:p></font></span></strong></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 15.6pt; mso-para-margin-bottom: 1.0gd"><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">Q?/span><span lang=EN-US><font face=Calibri>1</font></span><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">Q一个线E只能属于一个进E,而一个进E可以有多个U程Q但臛_有一个线E?/span><span lang=EN-US><font face=Calibri> </font></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 15.6pt; mso-para-margin-bottom: 1.0gd"><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">Q?/span><span lang=EN-US><font face=Calibri>2</font></span><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">Q资源分配给q程Q同一q程的所有线E共享该q程的所有资源?/span><span lang=EN-US><font face=Calibri> </font></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 15.6pt; mso-para-margin-bottom: 1.0gd"><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">Q?/span><span lang=EN-US><font face=Calibri>3</font></span><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">Q处理机分给U程Q即真正在处理机上运行的是线E?/span><span lang=EN-US><font face=Calibri> </font></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 15.6pt; mso-para-margin-bottom: 1.0gd"><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">Q?/span><span lang=EN-US><font face=Calibri>4</font></span><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">Q线E在执行q程中,需要协作同步。不同进E的U程间要利用消息通信的办法实现同步?/span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 15.6pt; mso-para-margin-bottom: 1.0gd"><strong style="mso-bidi-font-weight: normal"><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">引入U程的好?/span><span lang=EN-US><font face=Calibri> <o:p></o:p></font></span></strong></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 15.6pt; mso-para-margin-bottom: 1.0gd"><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">Q?/span><span lang=EN-US><font face=Calibri>1</font></span><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">Q易于调度?/span><span lang=EN-US><font face=Calibri> </font></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 15.6pt; mso-para-margin-bottom: 1.0gd"><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">Q?/span><span lang=EN-US><font face=Calibri>2</font></span><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">Q提高ƈ发性。通过U程可方便有效地实现q发性。进E可创徏多个U程来执行同一E序的不同部分?/span><span lang=EN-US><font face=Calibri> </font></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 15.6pt; mso-para-margin-bottom: 1.0gd"><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">Q?/span><span lang=EN-US><font face=Calibri>3</font></span><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">Q开销。创建线E比创徏q程要快Q所需开销很少。?/span><span lang=EN-US><font face=Calibri> </font></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 15.6pt; mso-para-margin-bottom: 1.0gd"><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">Q?/span><span lang=EN-US><font face=Calibri>4</font></span><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">Q利于充分发挥多处理器的功能。通过创徏多线E进E(即一个进E可h两个或更多个U程Q,每个U程在一个处理器上运行,从而实现应用程序的q发性,使每个处理器都得到充分运行?/span><span lang=EN-US><font face=Calibri> </font></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 15.6pt; mso-para-margin-bottom: 1.0gd"><strong style="mso-bidi-font-weight: normal"><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">多线E技?/span><span lang=EN-US><o:p></o:p></span></strong></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 15.6pt; mso-para-margin-bottom: 1.0gd"><span lang=EN-US><span style="mso-tab-count: 1"><font face=Calibri>         </font></span></span><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">多线E应用程序将E序划分为多个独立的dQ每个Q务由一个线E处理。多U程处理可以同时q行多个U程?/span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 15.6pt; mso-para-margin-bottom: 1.0gd"><strong style="mso-bidi-font-weight: normal"><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">多线E技术的优点</span><span lang=EN-US><o:p></o:p></span></strong></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 15.6pt; mso-para-margin-bottom: 1.0gd"><span lang=EN-US><font face=Calibri>(1)</font></span><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">多线E技术ɽE序的响应速度更快</span><span lang=EN-US><font face=Calibri> ,</font></span><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">因ؓ用户界面可以在进行其它工作的同时一直处于活动状?/span><span lang=EN-US><font face=Calibri>;</font></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 15.6pt; mso-para-margin-bottom: 1.0gd"><span lang=EN-US><font face=Calibri>(2)</font></span><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">当前没有q行处理的Q务时可以处理器旉让给其它d</span><span lang=EN-US><font face=Calibri>; </font></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 15.6pt; mso-para-margin-bottom: 1.0gd"><span lang=EN-US><font face=Calibri>(3)</font></span><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">占用大量处理旉的Q务可以定期将处理器时间让l其它Q?/span><span lang=EN-US><font face=Calibri>; </font></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 15.6pt; mso-para-margin-bottom: 1.0gd"><span lang=EN-US><font face=Calibri>(4)</font></span><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">可以随时停止d</span><span lang=EN-US><font face=Calibri>; </font></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 15.6pt; mso-para-margin-bottom: 1.0gd"><span lang=EN-US><font face=Calibri>(5)</font></span><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">可以分别讄各个d的优先以优化性能?/span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 15.6pt; mso-para-margin-bottom: 1.0gd"><span lang=EN-US><span style="mso-spacerun: yes"><font face=Calibri> </font></span></span><strong style="mso-bidi-font-weight: normal"><em style="mso-bidi-font-style: normal"><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">是否需要创建多个线E取决于各种因素。在以下情况?/span><span lang=EN-US><font face=Calibri>,</font></span></em></strong><strong style="mso-bidi-font-weight: normal"><em style="mso-bidi-font-style: normal"><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">最适合采用多线E处?/span><span lang=EN-US><font face=Calibri>: <o:p></o:p></font></span></em></strong></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 15.6pt; mso-para-margin-bottom: 1.0gd"><span lang=EN-US><font face=Calibri>(1)</font></span><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">耗时或大量占用处理器的Q务阻塞用L面操?/span><span lang=EN-US><font face=Calibri>; </font></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 15.6pt; mso-para-margin-bottom: 1.0gd"><span lang=EN-US><font face=Calibri>(2)</font></span><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">各个d必须{待外部资源</span><span lang=EN-US><font face=Calibri> (</font></span><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">如远E文件或</span><span lang=EN-US><font face=Calibri> Internet</font></span><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">q接</span><span lang=EN-US><font face=Calibri>)</font></span><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">?/span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 15.6pt; mso-para-margin-bottom: 1.0gd"><strong style="mso-bidi-font-weight: normal"><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">多线E技术的~点</span><span lang=EN-US><o:p></o:p></span></strong></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 15.6pt; mso-para-margin-bottom: 1.0gd"><span lang=EN-US><font face=Calibri>1)</font></span><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">{候用共享资源时造成E序的运行速度变慢。这些共享资源主要是独占性的资源</span><span lang=EN-US><font face=Calibri> ,</font></span><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">如打印机{?/span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 15.6pt; mso-para-margin-bottom: 1.0gd"><span lang=EN-US><font face=Calibri>(2)</font></span><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">对线E进行管理要求额外的</span><span lang=EN-US><font face=Calibri> CPU</font></span><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">开销。线E的使用会给pȝ带来上下文切换的额外负担。当q种负担过一定程度时</span><span lang=EN-US><font face=Calibri>,</font></span><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">多线E的特点主要表现在其~点?/span><span lang=EN-US><font face=Calibri>,</font></span><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">比如用独立的U程来更新数l内每个元素?/span><font face=Calibri> </font></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 15.6pt; mso-para-margin-bottom: 1.0gd"><span lang=EN-US><font face=Calibri>(3)</font></span><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">U程的死锁。即较长旉的等待或资源竞争以及死锁{多U程症状?/span><font face=Calibri> </font></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 15.6pt; mso-para-margin-bottom: 1.0gd"><span lang=EN-US><font face=Calibri>(4)</font></span><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">对公有变量的同时L写。当多个U程需要对公有变量q行写操作时</span><span lang=EN-US><font face=Calibri>,</font></span><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">后一个线E往往会修Ҏ(gu)前一个线E存攄数据</span><span lang=EN-US><font face=Calibri>,</font></span><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">从而前一个线E的参数被修?/span><span lang=EN-US><font face=Calibri>;</font></span><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">另外</span><span lang=EN-US><font face=Calibri> ,</font></span><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">当公用变量的d操作是非原子性时</span><span lang=EN-US><font face=Calibri>,</font></span><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">在不同的机器?/span><span lang=EN-US><font face=Calibri>,</font></span><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">中断旉的不定?/span><span lang=EN-US><font face=Calibri>,</font></span><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">会导致数据在一个线E内的操作生错?/span><span lang=EN-US><font face=Calibri>,</font></span><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">从而生莫名其妙的错误</span><span lang=EN-US><font face=Calibri>,</font></span><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">而这U错误是E序员无法预知的?/span><span lang=EN-US><font face=Calibri> </font></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 15.6pt; mso-para-margin-bottom: 1.0gd"><strong style="mso-bidi-font-weight: normal"><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">Z么不使用多进E?</span><span lang=EN-US><o:p></o:p></span></strong></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 15.6pt; mso-para-margin-bottom: 1.0gd"><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">较之q程Q线E轻ѝh(hun)廉,启动速度快,退出比较快Q对pȝ资源的冲L较小?/span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 15.6pt; mso-para-margin-bottom: 1.0gd"><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">如果使用多进E,最困难的问题是如何把窗口句柄交l另一个进E。在</span><span lang=EN-US><font face=Calibri>Win32</font></span><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">中,句柄只在其诞生地Q进E中Q才有意义。这是一U安全警戒,避免某个q程有意无意地危及到另一个进E的资源?/span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 15.6pt; mso-para-margin-bottom: 1.0gd"><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">Z分nH口句柄Q你必须明明白白C生该句柄的一个副本,q且可以被其他进E用。在一个多U程E序中,所有线E都可以使用q个H口的句柄,因ؓ句柄和线E生zd同一个进E中?/span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 15.6pt; mso-para-margin-bottom: 1.0gd"><span lang=EN-US><span style="mso-spacerun: yes"><font face=Calibri> </font></span></span><span style="FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">如果两个U程分属不同的进E,那它们通常没有办法׃nM内存?span style="COLOR: red">不同q程间如果要通讯Q唯有依赖特别的设计Q之拥有共享内存(</span></span><span lang=EN-US style="COLOR: red"><font face=Calibri>shared memory</font></span><span style="COLOR: red; FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">Q?/span><span lang=EN-US style="COLOR: red"><o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 15.6pt; mso-para-margin-bottom: 1.0gd"><span style="COLOR: red; FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">如果两线E属于同一q程Q它们将׃n所有的内存Q包括全局变量、静态变量)Q很Ҏ(gu)实CU程之间的通讯?/span><span lang=EN-US style="COLOR: red"><o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 15.6pt; mso-para-margin-bottom: 1.0gd"><span lang=EN-US style="COLOR: black; mso-themecolor: text1"><font face=Calibri>Note</font></span><span style="COLOR: black; FONT-FAMILY: 宋体; mso-hansi-font-family: Calibri; mso-themecolor: text1; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin">Q主要是资源׃n问题</span><span lang=EN-US style="COLOR: black; mso-themecolor: text1"><o:p></o:p></span></p> <img src ="http://www.shnenglu.com/changshoumeng/aggbug/115252.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/changshoumeng/" target="_blank">长寿?/a> 2010-05-13 09:19 <a href="http://www.shnenglu.com/changshoumeng/articles/115252.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>消息处理U程http://www.shnenglu.com/changshoumeng/articles/113827.html长寿?/dc:creator>长寿?/author>Wed, 28 Apr 2010 02:45:00 GMThttp://www.shnenglu.com/changshoumeng/articles/113827.htmlhttp://www.shnenglu.com/changshoumeng/comments/113827.htmlhttp://www.shnenglu.com/changshoumeng/articles/113827.html#Feedback0http://www.shnenglu.com/changshoumeng/comments/commentRss/113827.htmlhttp://www.shnenglu.com/changshoumeng/services/trackbacks/113827.html阅读全文

]]>
VC初学者自我检题http://www.shnenglu.com/changshoumeng/articles/113439.html长寿?/dc:creator>长寿?/author>Sat, 24 Apr 2010 07:42:00 GMThttp://www.shnenglu.com/changshoumeng/articles/113439.htmlhttp://www.shnenglu.com/changshoumeng/comments/113439.htmlhttp://www.shnenglu.com/changshoumeng/articles/113439.html#Feedback0http://www.shnenglu.com/changshoumeng/comments/commentRss/113439.htmlhttp://www.shnenglu.com/changshoumeng/services/trackbacks/113439.htmlVCl习题(|上攉Q?/span>

zhangtaolmq

VC习题1

1.2 下列对于WinMain函数的描qCQ错误的是( C Q?/span>

AQ?/span>WinMain函数的名U是固定?/span>

BQ?/span>WinMain函数?/span>WindowsE序的入口点

CQ?/span>WinMain函数不能有参?/span>

DQ窗口函CWinMain的关联是通过H口cȝ注册实现?/span>

 

1.3 以下四个Ҏ(gu)中哪一个不属于面向对象的三大特性( AQ?/span>

  AQ封装?/span>   BQ多态?/span>   CQ抽象?/span>         DQ承?/span>

 

1.4 下列关键字中哪一个不是用于类的访问控制的Q?/span> B Q?/span>

AQ?/span>public BQ?/span>friend CQ?/span>private   DQ?/span>protected

 

1.5 下面四个MFCcM哪一个是理MFC应用E序的( AQ?/span>

    AQ?/span>CWinApp   BQ?/span>CMainFrame    CQ?/span>CDocument DQ?/span>CView

 

1.6 下列cM不属?/span>MFC框架基本cȝ是(Q?/span>

AQ?/span>CWinApp   BQ?/span>CFrameWnd    CQ?/span>CView      DQ?/span>CObject

 

1.7 传统的Y件开发主要采?/span> q程 驱动的方法,?/span>WindowsE序的开发用消?/span>       驱动模型Q该模型?u>事g机制来实现其功能?/span>

 

1.8 L架类是应用程序中负责控制菜单、工h和状态栏{界面元素的最主要的类?/span>

 

 

习题2

2.1 Windows 应用E序的消息来源主要包?/span> 输入消息、控制消息和pȝ消息、用h?/span>

 

2.2 SendMessage ?/span>CWnd对象发送一个消息,直到q条消息被处理之后才q回 

PostMessage 一条消息放入应用程序的消息队列Q然后不{窗口处理这条消息直接返?/span> 

 

2.3 CCmdUIcȝ主要功能是主要用?u>更新命o用户接口的状?/span>。如子菜单。工h上的按钮{?/span>                 ?/span>

 

2.4 代码ON_UPDATE_COMMAND_UIQ?/span>ID_TEST, OnUpdateTestQ的功能是:ID_TEST的更新命令接口消息的处理映射?/span>OnUpdateTest函数上?/span>

 

2.5 CStringcȝ功能是处理字W串Q其Format函数的功能是格式化字W串 ?/span>

 

2.6 CTimecȝ功能?/span> 处理日期旉Q其Format函数的功能是时间对象格式化为字W串

 

2.7 MessageBox函数的第一个参数表C?/span> 消息文字Q第二个参数表示 标题文字Q第三个参数表示 图标与按钮组?/span>              ?/span>

2.8 ?/span>windows中,按下一个字W键Q会依次触发WM_KEYDOWN   WM_CHAR、和WM_KEYUP三个消息?/span>

 

2.9 ?/span>WindowsH口内部需要重新绘制时Q会得到一?/span>  WM_PAINT  消息Q当释放鼠标右键Ӟ会得C?/span> WM_RBUTTONUP  消息?/span>

 

 

习题?/span>

3.1 Visual C++提供的资源编辑器不能~辑下列哪个资源Q?/span>C   Q?/span>

AQ菜?/span>  BQ工h      CQ状态栏    DQ位?/span>

 

3.2 MFC应用E序框架为状态栏定义的静态数l?/span>indicators攑֜哪个文g中( A Q?/span>

 AQ?/span>MainFrm.cpp       BQ?/span>MainFrm.h       CQ?/span>stdafx.cpp     DQ?/span>stdafx.h

 

3.3 deletemenu用来删除某个菜单,如果被删除的菜单Ҏ(gu)相关的弹单,则该弹出菜单的句柄也要被删除q攑ֆ存?/span>appendmenu用来q加某个菜单?/span>Q?/span> trackpopupmenu                用来在一?/span>POINTl构所指定的位|显CZ个上下文菜单?/span>

 

3.4工具栏上的按钮能触发的消?/span> command?/span> update_command_ui?/span>

 

3.5 状态栏上的H格可以分ؓ信息行窗格和 指示器窗?/span>两类?/span>

 

3.6 getsubmenu 可以得到指向某列菜单的指?/span>?/span>

 

3.7 下列函数中,可以实现d功能的是Q?/span>B   Q?/span>

 AQ?/span>Rectangle   BQ?/span>Ellipse CQ?/span>Circle   DQ?/span>Line

 

3.8 CDCcMؓ用户提供了下列四个文本输出函敎ͼ其中Q能使输出的文本呈现一个多列列表格式的是(C Q?/span>

 AQ?/span>TextOut BQ?/span>ExtTextOut   CQ?/span>TabbedTextOut   DQ?/span>DrawText

 

3.9下列cM哪一个不?/span>GDI对象c(B Q?/span>

AQ?/span>CPen   BQ?/span>CWnd CQ?/span>Cbrush  DQ?/span>CRgn

 

习题?/span>

4.1下面哪个不是CDCcȝzc( A  Q?/span>

AQ?/span>GDIc?/span>     BQ?/span>CPaintDCc?/span>   CQ?/span>CClientDCc?/span> DQ?/span>CWindowDCc?/span>

 

4.2 CDCcM实现l制矩Ş功能的函数是  RectangleQ实现绘制椭圆功能的函数?/span> EllipseQ?/span>改变文本颜色的函数是 SetTextColo改变文本背景颜色的函数是 SetBkcolor在指定位|显C字W串的函数是  Textout              ?/span>

 

4.3 MFCl图要素主要分ؓ两大c,?/span>  讑֤场景 和基本绘囑ַ?/span> ?/span>

 

4.4 Windows引入囑Ş讑֤接口的目的是屏蔽底层g的绘囄节,使编E更加容?/span>  ?/span>

 

4.5 Windows?/span>   COLORREF cd的数据存NԌ它采?/span>3个参数表C红、绿、蓝三元基本色的分量|q?/span>3个值的取D围ؓ 0?/span>255               ?/span>

 

4.6 创徏ȝ后,必须调用CDCcȝ成员函数   SelectObject新ȝ选进当前的绘囄境?/span>

 

4.7 MFC中的CDialogcd装了对话框的昄、关闭等常用功能Q其中,用来昄模态对话框的是函数Q?/span> Q?/span>

AQ?/span>CreateWindow   BQ?/span>ShowWindow   CQ?/span>DoModal      DQ?/span>UpdateWindow

 

4.8 对话框创建后Q还没显C前׃触发Q?/span> B  Q消息?/span>

AQ?/span>WM_PAINT    BQ?/span>WM_INITDIALOG    CQ?/span>WM_CREATE DQ?/span>WM_SIZE

 

4.9 通用对话框中Q属于非模态对话框的是Q?/span>DQ?/span>

   AQ文件对话框    BQ颜色对话框    CQ打印对话框    DQ查扑֯话框

习题?/span>

5.1 要打开文gQ应该用哪个通用对话框( A Q?/span>

 AQ?/span>CFileDialog      BQ?/span>CColorDialog      CQ?/span>CPrintDialog     DQ?/span>CFontDialog

 

5.2 通常对话框的初始化工作攑֜下列哪个函数中进行( Q?/span>

 AQ?/span>OnOK     BQ?/span>OnCancel      CQ?/span>OnInitDialog        DQ?/span>DoModal

 

5.3所有通用对话框都是由公共?u>c?/span>CCommonDialogz出来的,                      CColorDialog实现了标准的颜色对话框?/span>

 

5.4 MFC中,与属性对话框相关的两个类?/span> CPropertyPage ?/span>CPropertySheet

 

5.5下列控g中不属于按钮的是Q?/span> Q?/span>

   AQ下压按?/span>    BQ列表框    CQ单选框    DQ复选框

 

5.6 如果在输入时采用选择的方法进行,以下哪个控g不能实现Q?/span> D  Q?/span>

   AQ列表框控g    BQ单选按?/span>      CQ复选框       DQ编辑框

 

5.7 下面?/span>UpdateData函数的描qC错误的是Q?/span> D  Q?/span>

 AQ?/span>CWnd::UpdateData函数实现Ҏ(gu)件中数值的输入和读?/span>

  BQ?/span>UpdateData只有一个ؓTRUE?/span>FALSE的参?/span>

 CQ当调用UpdateDataQ?/span>FALSEQ时Q数据由控g兌的变量向控g传输

 DQ当调用UpdateDataQ?/span>TRUEQ时Q数据由控g兌的变量向控g传输

 

5.8 有两U方法可以创建静态文本控Ӟ一U是使用资源~辑器添?/span>Q另一U是 使用create函数动态创建?/span>

 

5.9 使用滚动条控件一般要用到控g所在对话框cȝWM_HSCROLL?/span> WM_VSCROLL            消息?/span>

习题?/span>

6.1 判断一l单选按钮中哪一个被选中了,要应?/span>GetCheckedRadioButton                               函数?/span>

 

6.2 GetScrollpos函数可以得到滚动条的滑块位置Q?/span> SetScrollpos函数可以讄滚动条的滑块位置Q?/span> Getpos可以得到滑动条的当前位置Q?/span> Setpos 函数可以讄滑动条的当前位置?/span>

 

6.3 CListBoxcM?/span> InsertString 函数可以为列表框插入一个新的字W串Q?/span> ResetContent              函数可以清空所有列表项内容?/span>

 

6.4当程序需要与界面交换数据Ӟ应该调用 UpdataData 函数?/span>

 

6.5  GetDocument 是视囄的成员函敎ͼ调用它可以得到指向与之关联的文档对象的指针,文档的串行化?/span>Serialize 函数中进行?/span>

 

6.6 在程序的M一个类中访问应用程序类的函Cؓ AfxGetApp Q在E序的Q何一个类中访问框架窗口类的函CؓAfxGetMainWnd()                ?/span>

 

6.7Z单文?/span>/视图l构的框架程序中包含的类?/span> CWinApp ?/span> CFrameWnd ?/span>   CDocument?/span>CDocTemplate?/span> Cview  

 

6.8 ODBC体系l构中不包括下列哪个lgQ?/span> C  Q?/span>

   AQ?/span>ODBC理?/span>    BQ数据源     CQ驱动程序管理器     DQ数据库理pȝDBMS

 

6.9 记录集可以分?/span> Dynaset(动态集)   ?/span> SnapshotQ快照)两种?/span>

习题?/span>

7.1 MFC?/span>ODBCcM要包?/span>5个类Q分别是CDatabase?/span>CRecordset ?/span> CRecordView ?/span> CDBException?/span> CFieldExchange ?/span>

 

7.2可以利用CRecordset AddNew函数d一条新记录Q利?/span>CRecordset MoveFirst函数记录指针移动到W一条记录上Q利?/span>CRecordsetUpdate               函数实现数据库记录的保存?/span>

 

7.3下列函数中,能ؓ状态栏W二个信息格讑֮文字的是Q?/span> A Q?/span>

 

a)SetPaneText    b)SetWindowText   c)SetPaneInfo    d)SetText

 

 

 

 

 

{题Q?/span>

 

1. 定义和用消息映表的步?/span> Q?/span>

?/span>  在头文g的类声明中添?/span>DECLARE_MESSAGE_MAP?/span>声明消息映射;

?/span> 在类的定义文?/span>(.cpp)定义消息映射表,Ҏ(gu)是在 文g的开始处dBEIGN_MESSAGE_MAP?/span>END_MESSAGE_MAP q一对宏Q在它们之间攄消息映射宏,定义q初始化消息映射?/span>Q在消息与处理消息的函数之间建立联系Q?/span>

?/span>  在类的定义文?/span>(.cpp)中添?/span>消息处理函数?/span>

2.什么是消息映射Q?/span>

所谓消息映,单地Ԍ是让程序员指定要某?/span>MFCc(有消息处理能力的c)处理某个消息?/span>MFC提供了工?/span>ClassWizard来帮助实现消息映,在处理消息的cMd一些有?span>消息映射的内容和处理消息的成员函?/span>。程序员完成消息处理函敎ͼ实现所希望的消息处理能力?/span>

如果zc要覆盖基类的消息处理函敎ͼqClassWizard在派生类中添加一个消息映条目,用同L原型定义一个函敎ͼ然后实现该函数。这个函数覆盖派生类的Q何基cȝ同名处理函数?/span>

 

3.创徏一个窗口的步骤Q?/span>

创徏一个完整的H口需要经q下面四个操作步?/span>

设计一个窗口类Q?/span>

注册H口c;

创徏H口Q?/span>

昄及更新窗口?/span>

 

4.什么是模态对话框Q什么是非模态对话框Q?/span>

所?#8220;模态对话框”是指对话框被弹出后用户必d对话框中作出相应的操作;在退出对话框之前Q会L其他应用E序的运行(包括它所在的应用E序Q?/span>

所?#8220;非模态对话框”是指当对话框被弹出后Q将一直保留在屏幕上,但不影响其他应用E序的运行,用户可以l箋在对话框所在的应用E序中进行其他操作;当需要用对话框Ӟ只需像激zM般窗口一样单d话框所在的区域卛_。例如在Microsoft Word中的“查找”?#8220;替换”对话框?/span>

 

5.文档/视图l构的工作机?/span>

视图通过GetDocument成员函数获得指向相关联的文档对象的指?/span>

通过该指针调用文档类的成员函数来从文档中d数据

视图把数据显CZ计算机屏q上

用户通过与视囄交互来查看数据ƈҎ(gu)据进行修?/span>

视图通过相关联的文档cȝ成员函数经q修改的数据传递给文档对象

文档对象获得修改q的数据之后Q对其进行必要的修改Q最后保存到怹介质(如磁盘文?/span>)?/span>

 

 

 

6.?/span>CDocumentcL生新的文档类的一般过E如下:

为每一个文档类型从CDocumentcL生一个相应的文档cRؓ文档cL加成员变量,q些变量主要用来保存文档的数据,q其它的对?/span>(如视囑֯?/span>)可以讉Kq些成员变量Q从而实现文档和视图的相互搭配用。重?/span>Serialize成员函数Q实现文档数据的串行化?/span>

 

7. 串行化的好处

使用串行化的好处Q是不需要重载文件打开、文件保存之cȝҎ(gu)Q?/span>MFC框架会自动完成这些Q务,q自动调用文档类?/span>SerializeҎ(gu)来完成串行化q程?/span>

如果文档的抽象数据只有一个字W串Q那么你只需要在Serialize中添加相映语句就可以完成串行化过E?/span>

 

8、简q在MFC Windows应用E序中?/span>CBrush对象的基本步骤?/span>

 

创徏dQ可调用d创徏函数CreateSolidBrush?/span>CreateHatchBrushQ?/span>

画刷选入讑֤环境Q调?/span>SelectObjectQ?/span>

使用该刷子进行绘?/span>

删除d

 

9、简q文?/span>/视图l构中包含的主要的类及各个类之间的相互关pR?/span>

包括 CWinApp?/span> CDocument ?/span>CView?/span> CDocTemplate ?/span> CFrameWnd c?/span>

一?/span> App可以包含多个文档模版Q?/span> CDocTemplate Q,但是 MFC AppWizard Q无论是 SDI q是 MDI Q都只是默认生成一个。但是在实际开发中一个文档模版不够,需要自己手工添加。这个结构是通过 MFC ?/span> CWinApp 的成员变?/span> CDocManager * m_pDocManager 实现的?/span>

CDocTemplate 拥有 3 个成员变量,分别保存着 Document ?/span> View ?/span> Frame ?/span> CRuntimeClass 指针Q另外持有成员变?/span> m_nIDResource Q用来指定这?/span> Document 昄时候采用的菜单资源?/span>

一个文档可以有多个视图Q由 Document 中成员变?/span> CPtrList m_ViewList l护?/span>

CFrameWnd 拥有一个成员变?/span> CView* m_pActiveView 指向当前zd?/span> View?/span>

CView 中拥有一个成员变?/span> CDocument* m_pDocument 指向该视囄关的 Document?/span>

 

10、写出按?/span>Show?/span>Show the Age响应单击消息的函?/span>OnEnableQ)?/span>OnShowQ)?/span>OnShowageQ)。函?/span>OnShowQ)使编辑框IDC_EDIT1?/span>IDC_EDIT2处于昄状态,函数OnShowageQ)要能够判断出单选按?/span>IDC_RADIO1?/span>IDC_RADIO2?/span>IDC_RADIO3哪个被选中Qƈ被选中单选按钮的标题d到组合框IDC_COMBO1中,设ؓl合框的默认选项?/span>

CMyDialog::OnEnableQ)

{

 GetDlgItem(IDC_EDIT1)->ShowWindow(SW_HIDE);

 GetDlgItem(IDC_EDIT2)->ShowWindow(SW_HIDE);

}

 

CMyDialog::OnShowQ)

{

 GetDlgItem(IDC_EDIT1)->ShowWindow(SW_SHOW);

 GetDlgItem(IDC_EDIT2)->ShowWindow(SW_SHOW);

}

CMyDialog::Onshowage()

{

 CString strText;

 int i=-1;

 i=GetCheckedRadioButton(IDC_RADIO1,IDC_RADIO3);

 if(i==IDC_RADIO1)

 strText=">20";

 else if(i==IDC_RADIO2)

 strText="15-20";

 else if(i==IDC_RADIO3)

 strText="<15";

 GetDlgItem(IDC_COMBO1)->SetWindowText(strText);

 

}

2、下面左图ؓ菜单l构Q右图ؓq行l果Q写出弹单的代码?/span>

void CPopupmenuView::OnContextMenu(CWnd* pWnd, CPoint point)

{

CMenu menuPopup ;

if(menuPopup.LoadMenu(IDR_MAINFRAME))

menuPopup.GetSubMenu (4)->TrackPopupMenu (TPM_LEFTALIGN | TPM_RIGHTBUTTON , point.x , point.y , this);

}

 

 

 



]]>
þþþ99оƷ10| ҹ޾þþþþþþ| ˾þü91| ޹Ʒþ98| þһѵ| vvaþ| þֻоƷƵ99| þ˳ƷCAOPOREN| ۺϳ˾þôƬ91| 99þþƷѿ| 91þþƷ91ɫҲ| 99þþƷѿ| ۺɫۺϾþۺ| þù˾Ʒ| ݺɫۺϾþȥ | ˾þ777777| ձþþþþĻ| Ļ˾Ʒþò| þþƷƵ| þ99Ʒžžžþ| ճˮþ޾Ʒtv| þˬ˰| þþAVҰ| þҹӰԺѹۿ| Ʒһþò| ˾þ91| þþĻ| ƷۺϾþþþþ98| 97þóƷ2021| ھƷþþþþþþõӰ| ŷսպ91ۺһþþ| ˾þô߽AVһ | vaĻþò | ƷѾþþþþþþ| þ| ˾þþAV츾ɫ| þþþþþۺձ| ޹˾ƷŮ˾þþ | Ʒ99þ99þþ| ҹƷþþþþžŵӰ | ŷƷþþ|