我试图通过OpenMP并行一个fortran循环。循环本质上只包含两个命令:
do i=1,LSample
calcSslice(Vpot(:,:,i), Sslice)
rpold = rp
combine_rp_matrices (rpold, Sslice, rp)
end do
calcSslice子例程读取Vpot(:,:,i),执行一些计算,并将结果存储在矩阵S片中。combine_rp_matrices使用rpold和Sslice更新rp。rp作为一个运行变量,是程序的期望输出。不同迭代的切片矩阵与rp的组合顺序是无关的。我第一次尝试并行化这个循环,如下所示:
!$O
在我的模块中,我想使用窗体中的控件。例如:我想将焦点放在某个Sub之后的文本框上。
我目前的解决方案是创建一个子例程来设置一个公共变量中的所有控件(参见下面)。
我的问题:
什么是最佳实践?人们通常是如何做到这一点的?什么时候应该调用我的子例程?(这是FORM_LOAD子程序中的第一个调用吗?)
Public TBnr As TextBox
Public Sub controlsInitieren()
Set TBnr = Forms("frm_TreeView_Example").pstNr
End Sub
为什么要这样:
if(x)
alert('Available');
给予:ReferenceError: x is not defined
虽然这样做是可行的:
if(window.x)
alert('Available');
不是说:
var x = "";
相当于:
x = "";
相当于:
window.x = "";
只要在外部有一个函数,整个代码就会被一个with(window)包围
为了让它更清楚:我确实知道全局变量和成员变量之间的区别,但是我想知道为什么检索未声明的变量会给出类似于Refer
当我刚开始作为初级C#开发人员时,在代码审查期间总是有人告诉我,如果我在给定的作用域中多次访问对象的属性,那么我应该在例程中创建一个局部变量,因为这比必须从对象中检索它要便宜。我从来没有真正质疑过它,因为它来自于更多我当时认为是相当有见识的人。 下面是一个基本的例子 示例1:在局部变量中存储对象标识符 public void DoWork(MyDataType object)
{
long id = object.Id;
if (ObjectLookup.TryAdd(id, object))
{
DoSomeOtherWork(id);