考虑这个例子:
var x = 0;
for (var i = 0; i < 100; i++ )
{
for (var a = i+1; a < 100; a++)
x += 1;
}
Run Code Online (Sandbox Code Playgroud)
打印x时,我们总是得到4950.如果我要将其并行化怎么办?
这就是我想出的
Parallel.For(0, 100, i => Parallel.For(i + 1, 100, a => { x += 1; }));
Run Code Online (Sandbox Code Playgroud)
但是,每次运行时都不会打印4950.为什么?
我有一个a4j:commandButton应该根据Id将我重定向到适当的"编辑"页面,我希望将其作为参数传递,如下所示:
<h:commandButton action="/details.jsf?faces-redirect=true" value="details">
<f:attribute name="id" value="#{bean.id}" />
</h:commandButton>
Run Code Online (Sandbox Code Playgroud)
问题是,它不起作用.我也尝试用"f:param name ="id"value ="#{bean.id}""替换f:attribute,但它也失败了.我唯一能做的就是输出链接:
<h:outputLink value="/details.jsf">
link
<f:param name="id" value="#{bean.id}" />
</h:outputLink>
Run Code Online (Sandbox Code Playgroud)
但我对链接并不满意,所以有没有办法使commandButton工作?
哦,我还有一个bean,应该在重定向后获得"id":
@PostConstruct
public void init(){
id= resolve("id");
}
Run Code Online (Sandbox Code Playgroud) 我有一个rpm包,我需要从中提取一些文件.包是不可重定位的,我试过"rpm --root/ - prefix",这不起作用.我应该采取什么方法来提取?
感谢Advace.
我有一个2D二进制矩阵,我想显示为黑白图.例如,假设我有一个4乘4的矩阵,如下所示:
1 1 0 1
0 0 1 0
1 1 0 1
1 0 0 0
Run Code Online (Sandbox Code Playgroud)
如何将其绘制为黑白矩阵?我的一些输入二进制矩阵的大小为100乘9,所以理想情况下我需要一个可以推广到不同大小矩阵的解决方案.
我有一个带复选框的stackpanel.我似乎无法在带有margin属性的复选框之间使用相同的间距
有人可以告诉我,我做错了什么?
下面的代码给了我这个:
http://www.shrani.si/f/1Y/M6/4eniAdAw/margin.png http://www.shrani.si/f/1Y/M6/4eniAdAw/margin.png
如您所见,元素之间的间距不是恒定的!
<StackPanel MinWidth="150" cal:Bind.Model="{Binding}" Orientation="Horizontal">
<StackPanel.Resources>
<Style TargetType="{x:Type CheckBox}">
<Setter Property="Margin" Value="0,0,20,0"/>
</Style>
</StackPanel.Resources>
<CheckBox IsChecked="{Binding IsShown}" Content="{Binding ModuleName, Converter={StaticResource localizeModuleAndFunctionConverter}}"
cal:Message.Attach="[Event Click] = [Action FilterShownModuleFunctions]" />
</StackPanel>
Run Code Online (Sandbox Code Playgroud) 假设以下代码由10个线程执行.
pthread_mutex_lock(&lock)
Some trivial code
pthread_mutex_unlock(&lock)
Run Code Online (Sandbox Code Playgroud)
为了解释的目的,我们可以说线程是T1,T2,T3 ...... T10.我的要求是只要T1或T2或T3(即T1,T2或T3中的任何一个)等待获取锁定,其他线程T4,T5,T6 ...... T10应该无法获取锁定即T1,T2和T3应优先获取相对于其他线程的锁定.
我想这可以通过增加线程T1,T2和T3的优先级来完成
即这是伪代码
if this thread is T1 or T2 or T3
increase its priority
pthread_mutex_lock(&lock)
Some trivial code
pthread_mutex_unlock(&lock)
if this thread is T1 or T2 or T3 decrease it priority to normal
Run Code Online (Sandbox Code Playgroud)
请注意,我想要一个适用于Linux平台的解决方案,并且应该使用pthreads.我真的不关心任何其他平台.
还要注意我真的不想让这3个线程成为实时,我希望它们展示它们的defualt行为(调度和优先级),除了在上面提到的一小段代码中我希望它们始终具有获取锁定的优先权.
我已经阅读了一些关于在Linux中调度策略和调度优先级的手册,但实际上并不能解决:(
这会有用吗?你能帮助我完成上述任务所需的确切pthread API吗?
关心lali
我模糊地回忆起在回答另一个问题之前看到这个,但是搜索未能得出答案.
我不记得声明作为指针的变量的正确方法是什么.是吗:
Type* instance;
Run Code Online (Sandbox Code Playgroud)
要么:
Type *instance;
Run Code Online (Sandbox Code Playgroud)
虽然我知道两者都会在大多数情况下编译,但我相信有一些例子很重要,可能与在同一行上声明同一类型的多个变量有关,因此一个比另一个更有意义.
我正在使用特征库,它承诺矩阵运算的矢量化.我不知道如何使用Eigen中给出的文件并编写一个makefile.使用Eigen的源文件包括下面列出的文件,这些文件甚至不是头文件(它们只是一些文本文件) -
<Eigen/Core>
<Eigen/Dense>
<Eigen/Eigen>
Run Code Online (Sandbox Code Playgroud)
等等.在Eigen的网页上,有人提到,为了使用它的功能,我不需要构建项目,那么如何在makefile中包含这些文件来构建我的项目.我的示例main.c文件看起来像这样.任何人都可以告诉我如何为这个文件编写一个makefile makefile -
#include <Eigen/Core>
// import most common Eigen types
USING_PART_OF_NAMESPACE_EIGEN
int main(int, char *[])
{
Matrix3f m3;
m3 << 1, 2, 3, 4, 5, 6, 7, 8, 9;
Matrix4f m4 = Matrix4f::Identity();
Vector4i v4(1, 2, 3, 4);
std::cout << "m3\n" << m3 << "\nm4:\n"
<< m4 << "\nv4:\n" << v4 << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
救命!
我已经在stackoverflow和google搜索了ans,但没有得到我需要的东西.
我在找什么:
有没有办法为类的类属性设置默认值?就像我们在Java中可以做的那样,在类的构造函数中,例如 -
MyClass(int a, String str){//constructor
this.a = a;
this.str = str;
// i am loking for similar way in obj-C as follows
this.x = a*5;
this.y = 'nothing';
}
Run Code Online (Sandbox Code Playgroud)
我为什么要找:
我有一个约有15个属性的课程.当我实例化类时,我必须使用一些默认值设置所有这些变量/属性.所以这使得我的代码变得繁重而复杂.如果我可以为该类中的那些实例变量设置一些默认值,那么必须减少此代码复杂性/冗余.
我需要你的帮助.
在此先感谢您的帮助.
-Sadat
我在我的网站项目中添加了一个Script#项目,并创建了一个包含两个类的小型示例库.
现在我想从网站代码中使用这些类.在这种情况下,我创建了一个简单的对象树并将其序列化为JSON(然后由客户端代码获取).
我尝试添加对Script#项目的引用.它编译得很好,但在启动时会给我一个错误:
甚至可以在Script#和普通C#之间共享代码?
我在VS 2010和.NET 3.5(两个项目)中使用脚本#0.6.