亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? tut16.html

?? WINDOWS程序員使用指南--匯編基礎
?? HTML
?? 第 1 頁 / 共 3 頁
字號:
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
   <meta name="Author" content="Iczelion">
   <meta name="GENERATOR" content="Mozilla/4.51 [en] (Win95; I) [Netscape]">
   <title>Iczelion's Win32 Assembly Tutorial 16: Event Object</title>
</head>
<body text="#FFFFFF" bgcolor="#000080" link="#FFFF00" vlink="#8080FF" alink="#FF00FF">

<center>
<h1>
<font face="Arial,Helvetica"><font color="#FFFFCC">Tutorial 16: Event Object</font></font></h1></center>
<font face="Arial,Helvetica"><font color="#FFFFFF"><font size=-1>We will
learn what an event object is and how to use it in a multithreaded program.</font></font></font><font face="Arial,Helvetica"><font size=-1></font></font>
<p><font face="Arial,Helvetica"><font size=-1><font color="#FFFFFF">Download
the example </font><font color="#000000"><a href="files/tut16.zip">here</a>.</font></font></font>
<h3>
<font face="Arial,Helvetica"><font color="#33FF33"><font size=+0>Theory:</font></font></font></h3>
<font face="Arial,Helvetica"><font color="#FFFFFF"><font size=-1>From the
previous tutorial, I demonstrated how threads communicate with a custom
window message. I left out two other methods: global variable and event
object. We will use both of them in this tutorial.</font></font></font>
<br><font face="Arial,Helvetica"><font color="#FFFFFF"><font size=-1>An
event object is like a switch: it has only two states: on or off. When
an event object is turned on, it's in the "signalled" state. When it is
turned off, it's in the "nonsignalled" state. You create an event object
and put in a code snippet in the relevant threads to watch for the state
of the event object. If the event object is in the nonsignalled state,
the threads that wait for it will be asleep.When the threads are in wait
state, they consume little CPU time.</font></font></font>
<br><font face="Arial,Helvetica"><font color="#FFFFFF"><font size=-1>You
create an event object by calling CreateEvent function which has the following
syntax:</font></font></font><font face="Arial,Helvetica"><font size=-1></font></font>
<p><b><font face="Arial,Helvetica"><font color="#FFFFCC"><font size=-1>CreateEvent
proto lpEventAttributes:DWORD,\</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FFFFCC"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
bManualReset:DWORD,\</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FFFFCC"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
bInitialState:DWORD,\</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FFFFCC"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
lpName:DWORD</font></font></font></b><font face="Arial,Helvetica"><font size=-1></font></font>
<p><font face="Arial,Helvetica"><font size=-1><b><font color="#009900">lpEventAttribute</font></b><font color="#FFFFFF">-->
If you specify NULL value, the event object is created with default security
descriptor.</font></font></font>
<br><font face="Arial,Helvetica"><font size=-1><b><font color="#009900">bManualReset</font></b><font color="#FFFFFF">-->
If you want Windows to automatically reset the event object to nonsignalled
state after WaitForSingleObject call, you must specify FALSE as this parameter.
Else you must manually reset the event object with the call to ResetEvent.</font></font></font>
<br><font face="Arial,Helvetica"><font size=-1><b><font color="#009900">bInitialState</font></b><font color="#FFFFFF">-->
If you want the event object to be created in the signalled state, specify
TRUE as this parameter else the event object will be created in the nonsignalled
state.</font></font></font>
<br><font face="Arial,Helvetica"><font size=-1><b><font color="#009900">lpName</font></b><font color="#000000">
</font><font color="#FFFFFF">--> Pointer to an ASCIIZ string that is the
name of the event object. This name is used when you want to call OpenEvent.</font></font></font><font face="Arial,Helvetica"><font size=-1></font></font>
<p><font face="Arial,Helvetica"><font color="#FFFFFF"><font size=-1>If
the call is successful, it returns the handle to the newly created event
object else it returns NULL.</font></font></font>
<br><font face="Arial,Helvetica"><font color="#FFFFFF"><font size=-1>You
can modify the state of an event object with two API calls: SetEvent and
ResetEvent. SetEvent function sets the event object into signalled state.
ResetEvent does the reverse.</font></font></font>
<br><font face="Arial,Helvetica"><font color="#FFFFFF"><font size=-1>When
the event object is created, you must put the call to WaitForSingleObject
in the thread that wants to watch for the state of the event object. WaitForSingleObject
has the following syntax:</font></font></font><font face="Arial,Helvetica"><font size=-1></font></font>
<p><b><font face="Arial,Helvetica"><font color="#FFFFCC"><font size=-1>WaitForSingleObject
proto hObject:DWORD, dwTimeout:DWORD</font></font></font></b><font face="Arial,Helvetica"><font size=-1></font></font>
<p><font face="Arial,Helvetica"><font size=-1><b><font color="#009900">hObject</font></b><font color="#FFFFFF">
--> A handle to one of the synchronization object. Event object is a type
of synchronization object.</font></font></font>
<br><font face="Arial,Helvetica"><font size=-1><b><font color="#009900">dwTimeout
</font></b><font color="#FFFFFF">--> specify the time in milliseconds that
this function will wait for the object to be in signalled state. If the
specified time has passed and the event object is still in nonsignalled
state, WaitForSingleObject returns the the caller. If you want to wait
for the object indefinitely, you must specify the value INFINITE as this
parameter.</font></font></font>
<h3>
<font face="Arial,Helvetica"><font color="#33FF33"><font size=+0>Example:</font></font></font></h3>
<font face="Arial,Helvetica"><font color="#FFFFFF"><font size=-1>The example
below displays a window waiting for the user to select a command from the
menu. If the user selects "run thread", the thread starts the savage calculation.
When it's finished, a message box appears informing the user that the job
is done. During the time that the thread is running, the user can select
"stop thread" to stop the thread.</font></font></font><font face="Arial,Helvetica"><font size=-1></font></font>
<p><b><font face="Arial,Helvetica"><font color="#FFFF99"><font size=-1>.386</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FFFF99"><font size=-1>.model
flat,stdcall</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FFFF99"><font size=-1>option
casemap:none</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FFFF99"><font size=-1>WinMain
proto :DWORD,:DWORD,:DWORD,:DWORD</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FFFF99"><font size=-1>include
\masm32\include\windows.inc</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FFFF99"><font size=-1>include
\masm32\include\user32.inc</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FFFF99"><font size=-1>include
\masm32\include\kernel32.inc</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FFFF99"><font size=-1>includelib
\masm32\lib\user32.lib</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FFFF99"><font size=-1>includelib
\masm32\lib\kernel32.lib</font></font></font></b><font face="Arial,Helvetica"><font size=-1></font></font>
<p><b><font face="Arial,Helvetica"><font color="#FFFF99"><font size=-1>.const</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#66FF99"><font size=-1>IDM_START_THREAD
equ 1</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#66FF99"><font size=-1>IDM_STOP_THREAD
equ 2</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FFFF99"><font size=-1>IDM_EXIT
equ 3</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FFFF99"><font size=-1>WM_FINISH
equ WM_USER+100h</font></font></font></b><font face="Arial,Helvetica"><font size=-1></font></font>
<p><b><font face="Arial,Helvetica"><font color="#FFFF99"><font size=-1>.data</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FFFF99"><font size=-1>ClassName
db "Win32ASMEventClass",0</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FFFF99"><font size=-1>AppName&nbsp;
db "Win32 ASM Event Example",0</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FFFF99"><font size=-1>MenuName
db "FirstMenu",0</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#66FF99"><font size=-1>SuccessString
db "The calculation is completed!",0</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#66FF99"><font size=-1>StopString
db "The thread is stopped",0</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#66FF99"><font size=-1>EventStop
BOOL FALSE</font></font></font></b><font face="Arial,Helvetica"><font size=-1></font></font>
<p><b><font face="Arial,Helvetica"><font color="#FFFF99"><font size=-1>.data?</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FFFF99"><font size=-1>hInstance
HINSTANCE ?</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FFFF99"><font size=-1>CommandLine
LPSTR ?</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FFFF99"><font size=-1>hwnd
HANDLE ?</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FFFF99"><font size=-1>hMenu
HANDLE ?</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FFFF99"><font size=-1>ThreadID
DWORD ?</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#66FF99"><font size=-1>ExitCode
DWORD ?</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#66FF99"><font size=-1>hEventStart

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99re66热这里只有精品3直播| 制服丝袜在线91| 欧美网站大全在线观看| 久久在线观看免费| 亚洲一二三四在线| 成人性生交大片| 欧美精品一区二区三区高清aⅴ| 亚洲午夜电影在线观看| 国产成人av电影免费在线观看| 欧美日韩高清在线播放| 亚洲蜜臀av乱码久久精品 | 91免费视频网| 精品第一国产综合精品aⅴ| 亚洲国产成人精品视频| fc2成人免费人成在线观看播放| 日韩精品资源二区在线| 图片区日韩欧美亚洲| 欧美专区在线观看一区| 亚洲欧美色综合| 色综合天天做天天爱| 亚洲视频1区2区| 99久久99精品久久久久久 | 成人国产精品免费| 国产婷婷一区二区| 国产传媒欧美日韩成人| 日韩一卡二卡三卡国产欧美| 亚洲成av人片在线观看无码| 欧美中文字幕一区| 亚洲一二三级电影| 欧美日韩亚洲不卡| 日本一区中文字幕| 日韩免费高清av| 狠狠色狠狠色综合日日91app| 日韩一级视频免费观看在线| 精品一区二区在线免费观看| 欧美不卡在线视频| 精品一区二区免费| 国产拍欧美日韩视频二区| 国产精品亚洲午夜一区二区三区| 日韩一卡二卡三卡国产欧美| 狠狠色2019综合网| 欧美国产精品专区| 色综合天天在线| 一卡二卡三卡日韩欧美| 欧美美女一区二区| 精品在线一区二区三区| 国产精品日韩成人| 在线影视一区二区三区| 蜜臀av在线播放一区二区三区| 7777精品伊人久久久大香线蕉的| 青椒成人免费视频| 国产欧美一区二区三区网站| 91在线无精精品入口| 香蕉加勒比综合久久| 日韩精品中文字幕一区二区三区 | 久久色在线观看| 成人午夜视频在线观看| 亚洲一区在线视频| 精品乱人伦小说| 波多野结衣亚洲| 亚洲国产精品一区二区久久恐怖片 | 欧美日本一道本| 精品中文字幕一区二区| 1000精品久久久久久久久| 91精品国产一区二区| 国产乱码精品一区二区三区av | 久久综合色天天久久综合图片| 99久久99久久精品免费观看| 日韩专区一卡二卡| 亚洲国产精品99久久久久久久久| 男女视频一区二区| 韩国毛片一区二区三区| 欧美激情在线一区二区| 欧美日韩电影在线| 成人激情综合网站| 老司机午夜精品| 亚洲免费资源在线播放| 精品国产91久久久久久久妲己| 99精品热视频| 国产精品一二三四区| 日韩二区在线观看| 亚洲欧美另类久久久精品2019| 日韩欧美国产一区二区在线播放 | 国产精品毛片大码女人| 日韩一卡二卡三卡四卡| 欧美亚洲综合色| 国产成人午夜精品5599| 美女网站一区二区| 天天综合色天天综合色h| 国产精品成人免费在线| 欧美精品一区二区在线观看| 欧美精品久久久久久久多人混战| 91在线观看美女| 国产精品系列在线播放| 老鸭窝一区二区久久精品| 午夜伊人狠狠久久| 亚洲一区视频在线观看视频| 亚洲日本青草视频在线怡红院| 亚洲精品一区二区三区99| 91精品国产综合久久久久久久| 在线观看网站黄不卡| 色婷婷精品久久二区二区蜜臀av| 国产成人丝袜美腿| 国产一区二区三区四| 看国产成人h片视频| 日韩中文字幕麻豆| 三级久久三级久久久| 亚洲成人av福利| 一区二区三区在线免费| 一区二区三区精品视频| 亚洲视频在线观看一区| 亚洲欧美综合色| 国产精品狼人久久影院观看方式| 国产欧美1区2区3区| 久久久久久久av麻豆果冻| 久久综合九色综合欧美就去吻 | 91精品福利在线一区二区三区 | 97se狠狠狠综合亚洲狠狠| 99精品视频免费在线观看| 99久久精品国产观看| 色婷婷av一区二区三区之一色屋| 91精品91久久久中77777| 欧美中文字幕一二三区视频| 欧美亚洲国产bt| 欧美二区三区的天堂| 日韩免费一区二区三区在线播放| 精品国产不卡一区二区三区| 26uuu欧美| 国产精品网友自拍| 一区二区三区中文免费| 日韩av电影天堂| 国内精品伊人久久久久av一坑| 国产成人亚洲综合色影视| 99精品热视频| 欧美视频一区二区三区| 日韩一区二区三区四区五区六区 | 国产老女人精品毛片久久| 成人视屏免费看| 色94色欧美sute亚洲13| 欧美一卡在线观看| 中文一区二区在线观看| 一区二区三区中文在线| 九九视频精品免费| 91免费视频观看| 日韩精品综合一本久道在线视频| 国产精品嫩草99a| 午夜精彩视频在线观看不卡| 国产精品亚洲一区二区三区在线| 色噜噜狠狠色综合欧洲selulu| 91麻豆精品国产91久久久久久久久| 久久久久久9999| 夜夜精品视频一区二区 | 亚洲电影你懂得| 精品伊人久久久久7777人| 91在线观看地址| 欧美成人综合网站| 一区二区在线观看av| 久久精品国产精品亚洲精品| 99vv1com这只有精品| 日韩一级大片在线观看| 亚洲理论在线观看| 国产伦精一区二区三区| 欧美视频你懂的| 国产欧美一区二区精品性色超碰| 亚洲五码中文字幕| 国产69精品一区二区亚洲孕妇 | 国产日产欧美一区| 奇米亚洲午夜久久精品| 91麻豆免费看片| 久久久久久电影| 青椒成人免费视频| 欧美日韩免费电影| 亚洲欧美日韩久久| 成人一二三区视频| 久久久久久久久蜜桃| 久久99精品国产| 欧美乱熟臀69xxxxxx| 亚洲永久精品国产| 色网综合在线观看| 中文字幕乱码日本亚洲一区二区| 奇米色777欧美一区二区| 在线日韩一区二区| 一级做a爱片久久| 色视频欧美一区二区三区| 国产精品久久久久影院亚瑟| 国产一区二区剧情av在线| 精品久久一二三区| 久久成人免费电影| 欧美成人女星排名| 久久er99精品| 欧美不卡一二三| 亚洲成人免费看| 欧美日韩亚洲高清一区二区| 亚洲一区成人在线| 91黄色免费观看| 一级做a爱片久久| 欧美艳星brazzers| 日韩和欧美一区二区三区| 欧美日韩精品一二三区| 天天综合天天做天天综合|