📄 00577.html
字号:
<p class="Element10">
如果事件表达式一个简单对象句柄的引用或者是<span style="color: #0000FF">chandel</span>变量,那么当对变量的写不等于它的前一个值的时候会产生一个事件。 </p>
<p class="Element10">
</p>
<p class="Element10">
一个对象的非虚拟方法以及一个集合类型的内建方法或系统函数允许使用在事件控制表达式中,只要返回值是单一值并且方法被定义成一个函数而不是一个任务。 </p>
<p class="Element10">
</p>
<p class="Element10">
改变由一个方法或函数引用的对象数据成员、集合元素的值,或者动态尺寸数组的尺寸会引起事件表达式被重新计算。当改变值或尺寸的时候,一个具体的实现可以引起事件表达式被重新计算,即使这些成员没有被方法或函数引用。 </p><div class="Element170">
<a href="#" onclick="CopyElementToClipboard('code00295');">Copy Code</a></div>
<div class="Element13"><div class="Element12" id="code00295"><pre class="Element12"><span style="color: #0000FF">real</span> AOR<span style="color: #800080">[];</span> <span style="color: #008000">// real类型的动态数组</span>
<span style="color: #0000FF">byte</span> stream<span style="color: #800080">[$];</span> <span style="color: #008000">// byte类型的队列</span>
<span style="color: #0000FF">initial wait</span><span style="color: #800080">(</span>AOR<span style="color: #800080">.</span><span style="color: #0000FF">size</span><span style="color: #800080">() > </span><span style="color: #FF0000">0</span><span style="color: #800080">)</span> ....<span style="color: #800080">;</span> <span style="color: #008000">// 等待数组被分配</span>
<span style="color: #0000FF">initial wait</span><span style="color: #800080">(</span><span style="color: #0000FF">$bits</span><span style="color: #800080">(</span>stream<span style="color: #800080">) > </span><span style="color: #FF0000">60</span><span style="color: #800080">)</span>...<span style="color: #800080">;</span> <span style="color: #008000">// 等待stram中总的位数大于60</span>
Packet p <span style="color: #800080">=</span> <span style="color: #0000FF">new</span><span style="color: #800080">;</span> <span style="color: #008000">// Packet 1</span>
Packet q <span style="color: #800080">=</span> <span style="color: #0000FF">new</span><span style="color: #800080">;</span> <span style="color: #008000">// Packet 2</span>
<span style="color: #0000FF">initial fork</span>
<span style="color: #800080">@(</span>p<span style="color: #800080">.</span>status<span style="color: #800080">);</span> <span style="color: #008000">// 等待Packet 1中的status发生变化</span>
<span style="color: #800080">@</span>q<span style="color: #800080">;</span> <span style="color: #008000">// 等待q的变化</span>
<span style="color: #800080">#</span><span style="color: #FF0000">10</span> q <span style="color: #800080">=</span> p<span style="color: #800080">;</span> <span style="color: #008000">// triggers @q.</span>
<span style="color: #008000"> // @(p.status) now waits for status in Packet 2 to change,</span>
<span style="color: #008000"> // if not already different from Packet 1</span>
<span style="color: #0000FF">join</span></pre></div></div>
</div>
</div>
<a name="Group"></a><div class="Element14">
<a onclick="toggleVisibilityStored('Group');" class="a_Element14"><img src="sectionminus.png" border="0" alt="" title="" id="imgGroup">Group</a></div>
<div id="divGroup">
<div class="Element11">
<div class="Element10">
<p class="Element10">
<a href="00846.html" target="topic">第八章 过程语句和控制流</a></p></div>
</div>
</div>
<a name="主题"></a><div class="Element14">
<a onclick="toggleVisibilityStored('主题');" class="a_Element14"><img src="sectionminus.png" border="0" alt="" title="" id="img主题">主题</a></div>
<div id="div主题">
<div class="Element11">
<div class="Element10">
<div class="Element212">
<div class="TableDiv">
<table cellspacing="0" class="Table0">
<tr>
<td class="Element200" valign="top" width="50%">
<div class="Element201">
主题 </div></td><td class="Element204" valign="top" width="50%">
<div class="Element205">
描述 </div></td></tr><tr>
<td class="Element202" valign="top" width="50%">
<div class="Element203">
<a href="00578.html" target="topic">8.10.1 序列事件</a> </div></td><td class="Element206" valign="top" width="50%">
<div class="Element207">
事件表达式中可以使用一个序列实例,它基于序列的成功匹配来控制过程语句的执行。这就允许命名序列的终点能够触发其它进程中的多个动作。<a href="00173.html" target="topic">语法17-2</a>和<a href="00174.html" target="topic">语法17-4</a>描述了声明命名序列和序列实例的语法。正像语法8-9所显示的那样,一个序列实例可以直接使用在事件表达式中。<br><br>当一个事件表达式中指定了一个序列实例的时候,执行事件控制的进程应该阻塞直到指定的序列到达终点。只要整个序列形成匹配,一个序列就到达终点。进程继续执行之后的检测到终点的Observe区域。<br><br>使用一个序列作为事件控制的例子如下: </div></td></tr></table></div></div>
</div>
</div>
</div>
<a name="Links"></a><div class="Element14">
<a onclick="toggleVisibilityStored('链接');" class="a_Element14"><img src="sectionminus.png" border="0" alt="" title="" id="img链接">链接</a></div>
<div id="div链接">
<div class="Element11">
<div class="Element10">
<a href="00846.html" target="topic">第八章 过程语句和控制流</a>, <a href="00917.html" target="topic">主题</a></div>
</div>
</div>
</div>
<!-- End Page Content -->
<!-- Begin Page Footer -->
<hr width="98%" align="center" size="1" color="#CCCCCC" />
<table align="center" cellpadding="0" cellspacing="0" border="0">
<tbody>
<tr height="10">
<td></td>
</tr>
<tr align="center">
<td>
<script type="text/javascript"><!--
google_ad_client = "pub-5266859600380184";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_page_url = document.location;
//--></script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</td>
</tr>
<tr height="15">
<td></td>
</tr>
<tr align="center">
<td>
<font size=2>除非特别声明,原文版权归作者所有,如有转摘请注明原作者以及译者(<a href="http://www.fpgatech.net/" target="_blank">FPGA技术网</a>)信息。<br />
如果您对本主题有何建议或意见,请登陆<a href="http://www.fpgatech.net/forum/forumdisplay.php?fid=18" target="_blank">FPGA开发者家园</a>提交,您的参与是我们前进的动力。</font>
<script language="javascript" type="text/javascript" src="http://js.users.51.la/195685.js"></script>
<noscript><a href="http://www.51.la/?195685" target="_blank"><img alt="我要啦免费统计" src="http://img.users.51.la/195685.asp" style="border:none" /></a></noscript>
</td>
</tr>
</tbody>
</table>
<!-- End Page Footer -->
</div>
</div>
<!-- End Client Area -->
</body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -