选择特殊符号
选择搜索类型
请输入搜索
水电站引用流量又称水电站工作流量,是指水电站单位时间内通过建筑物和水轮机用来发电的水量。其单位为立方米每秒。2100433B
观测的水位资料转换成流量资料。流量测验的次数及其在水位上时间上的分布,以能满足确定水位流量关系的需要为度。中国的流量测验,以流速仪法、浮标法为主。随着过河设备的改进,流速仪测流能力和浮标法的适应能力都...
常规水电站 需要人员不间断的巡视维护 。自动化水电站以计算机监控系统为基础的综合自动化;使水电站逐步实现少人值班,最终达到无人值班(或少人值守)。
在同一条洞子里,作这样的区分是为了适应不同地质条件的。
水电站坝下最小下泄流量探讨——以夏岛水电站为例
拟改建夏岛水电站及库区所在区域属城市及郊区,贺达纸业公司年产7万t全漂白硫酸盐桉木浆工程生产废水经公司污水处理厂处理后于夏岛水电站坝址下游50m处排入贺江。两大主要污染源直接影响到夏岛水电站改建工程的实施,在大量调查资料及预测的基础上,结合对近几年来的科研成果及相关资料分析,从系统的角度,研究了夏岛水电站最小下泄流量,并提出了在一定条件下水电站蓄水建议。
为什么要选择为每一个接口单独维护一个引用计数而不是针对整个组件维护引用计数呢?
主要有两个原因:一是使程序调试更为方便;另外一个原因是支持资源的按需获取。
1程序调试:
假设在程序中忘记对某个接口调用Release(其实很多人会犯这个错)。这样组件将永远不会被删除掉,因为只是在引用计数值0时delete才会被调用 。这时就需要找出接口在何时何处应该被释放掉。当然找起来是相当困难的。在只对整个组件维护一个接口的情况下,进行这种 查找更为因难了。此时必须检查使用了此组件所提供的所有接口的代码。但若组件支持对每个接口分别维护一个引用计数那么可以把查找的范围限制在某个特定的接口上。在某些情况下这可以节省大量时间。
2.资源的按需获取
在实现某个接口时可能需要大量的内存或其他资源。对于此种情况,可以在QueryInterface的实现中,在客户请求此接口时完成资源的分配。但若只对整个组件维护一个引用计数,组件将无法决定何时可以安全地将此些接口相关联的内存释放。但基对每个接口分别维护一个引用计数,那么决定何时可以将此内存释放将会容易得多。
正确使用引用计数三条简单的规则
1. 在返回之前调用AddRef。对于那些建好些返回接口指针的函数,在返回之前应该相应的指针调用AddRef。这些函数包括QueryInterface 及CreateInstance。这样当客户从这种 函数得到一个接口后。它将无需调用AddRef.
2.使用完接口之后调用Release。在使用某个接口之后应该调用些接口的Release函数。
3.在赋值之后调用AddRef. 在将一个接口指针赋给另一个接口指针时,应调用AddRef。换句话说,在建立接口的别外一个引用之后应增加相应组件的引用计数。
在客户看来,引用计数是处于接口级的而不是组件级的。但从实现的角度来看,谁的引用计数被记录下来实际上没有关系。客户可以一直接相信组件将记录每个接口本身维护引用计数值。但客户不能假设整个组件维护单个的引用计数。
对于客户而言,每一个接口被分别维护一个引用计数意味着客户应该对它将要使用的指针调用AddRef,而不是其他的什么指针。对于使用完了指针客户应该调用其Release。
选择为每一个接口单独维护一个引用计数而不是针对整个组件维护引用计数的原因:
使程序调试更为方便;支持资源的按需获取;
可以通过增大和减少某个数的值而实现之。
另外要注意的是AddRef和Release的返回值没有什么意义,只是在程序调试中才可能会用得上.客户不应将此从此值当成是组件或其接口的精确引用数。
客户必须对每一个接口具有一个单独的引用计数值那样来处理各接口。因此,客户必须对不同的接口分别进行引用计数,即使它们的生命期是嵌套的。
一、输出参数规则
输出参数指的是给函数的调用者传回一个值的函数参数。从这一点上讲,输出参数的作用同函数的返回值是类似的。任何在输出参数中或作为返回值返回一个新的接口指针的函数必须对些接口指针调用AddRer。
二、输入参数规则
对传入函数的接口指针,无需调用AddRef和Release,这是因为函数的生命期嵌套在调用者的生命期内。
三、输入-输出参数规则
输入-输出参数同时具有输入参数及输出参数的功能。在函数休中可以使用输入-输出参数的值,然后可以对这些值进行修改并将其返回给调用者。
在函数中,对于用输入-输出参数传递进来的接口指针,必须在给它赋另外一个接口指针值之前调用其Release。在函数返回之前,还必须对输出参数中所保存的接口指针调用AddRef。
四、局部变量规则
对于局部自制的接口指针,由于它们只是在函数的生命其内才存在,因此无需调用AddRef和Release。这条规则实际是输入参数规则的直接结果。在下面的例子中,pIX2只是在函数foo的生命期内都在,因此可以保证其生命期将嵌套在所传入的pIX指针的生命期,因此无需对pIX2调用AddRef和Release。
五、全局变量规则
对于保存在全局变量中的接口指针,在将其传递给另外一个函数之前,必须调用其AddRef。由于此变量是全局性的,因此任何函数都可以通过调用其Release来终止其生命期。对于保存在成员变量中的接口指针,也应按此种方式进行处理。因为类中的任何成员函数都可以改变此种接口指针的状态。
六、不能确定时的规则
对于任何不定的情形,都应调用AddRef和Release对。
另外,在决定要进行优化时,应给那些没有进行引用计数的指针加上相应的注释,否则其它程序员在修改代码时,将可能会增大接口指针的生命期,从而合引用计数的优化遭到破坏。
忘记调用Release造成的错误可能比不调用AddRef造成的错误更难检测。
最直观的垃圾收集策略是引用计数。引用计数很简单,但是需要编译器的重要配合,并且增加了赋值函数 (mutator) 的开销(这个术语是针对用户程序的,是从垃圾收集器的角度来看的)。每一个对象都有一个关联的引用计数 —— 对该对象的活跃引用的数量。如果对象的引用计数是零,那么它就是垃圾(用户程序不可到达它),并可以回收。每次修改指针引用时(比如通过赋值语句),或者当引用超出范围时,编译器必须生成代码以更新引用的对象的引用计数。如果对象的引用计数变为零,那么运行时就可以立即收回这个块(并且减少被回收的块所引用的所有块的引用计数),或者将它放到迟延收集队列中。
com组件将维护一个称作是引用计数的数值。当客户从组件取得一个接口时,此引用计数值将增1。当客户使用完某个接口后,组件的引用计数值将减1.当引用计数值为0时,组件即可将自己从内存中删除。
公式中的相对单元格引用(例如 A1)是基于包含公式和单元格引用的单元格的相对位置。如果公式所在单元格的位置改变,引用也随之改变。如果多行或多列地复制公式,引用会自动调整。默认情况下,新公式使用相对引用。例如,如果将单元格 B2 中的相对引用复制到单元格 B3,将自动从 =A1 调整到 =A2。
复制的公式具有相对引用