我正在编写将启动许多子进程的ac#程序.在稍后的某个时间,我需要通过ID检索这些进程,然后将这些进程与存储在Dictionary中的一组进程匹配,这些进程在首次创建时添加到Dictionary中.但是,我遇到了一个看似纯粹荒谬的问题......
Process notepad = new Process();
notepad.StartInfo.FileName = "notepad";
notepad.Start();
Process n2 = Process.GetProcessById(notepad.Id);
Debug.WriteLine(notepad == n2); //'False', but Why isn't this true???
Debug.WriteLine(notepad.Id == n2.Id); //'True'
Run Code Online (Sandbox Code Playgroud)
我已经使用.NET Reflector来发现GetProcessById返回一个'new Process(...)',但它似乎应该找到对已经运行的进程的引用并返回它.
您可以假设第一个Debug语句本质上是一个调用
MyCustomDataType data = myDictionary [notepad];
我希望得到我最初插入的数据,而不是因为默认的比较器正在进行引用检查而得到KeyNotFoundException.为了解决这个问题,我在我的字典上添加了一个自定义IComparer,它只检查两个Process对象是否具有相同的ID,因此我可以按预期获得相关的数据.但是,这有其自身的问题,即未运行的进程没有进程ID,因此有时在我的自定义IComparer中调用Process.ID会引发InvalidOperationException!所以,我修复了一个问题只是为了创造另一个问题.
所以,我想我有两个问题:
所以我认为我认为java中的数独求解器的代码非常好,但我需要一些帮助.当我将它嵌入main方法时,它给了我一个堆栈溢出.问题是我的方法不知道如何扭转并修复它的错误.我需要一个布尔标志(一个与下面的代码中使用的标志不同,实际上最好工作)或其他东西让它知道什么时候应该转回来,什么时候它可以再次前进并继续解决游戏.谢谢你提供的所有帮助
public void play(int r, int c){//this method throws the StackOverflowError
if(needAtLoc(r,c).size()==9){
int num=1+generator.nextInt(9);
setCell(r,c,num,this);
if(c<8){
System.out.println(this);///////////////
play(r, c+1);
}
else{
play(r+1, 0);
}
}
else{
if(needAtLoc(r,c).size()==0){//no possible moves THIS IS THE PROBLEM LINE!!!
if(c>0){
play(r, c-1);//play last cell, in column to left
}
else{
if(r==0){
play(r,c);//first square, so must play again (can't go back)
}
else{
play(r-1, 8);/*first cell of row so must go to previous row and
the end column*/
}
}
}
else{//if there are possible moves …Run Code Online (Sandbox Code Playgroud) 我使用方法Post在html表单中有以下内容.
<input type="submit" title="" class="myclass" value="" />
Run Code Online (Sandbox Code Playgroud)
和:
.myclass {
background: url(../images/image1.png) no-repeat; border: none;
width: 165px;
height: 59px;
}
Run Code Online (Sandbox Code Playgroud)
基本上,我需要使用image1.png按钮发布我的表单信息,并且当悬停时,将调用image2.png.你会推荐CSS或javascript,这将是什么样的确切方法?
谢谢大家,已经回答了!
这个python代码的PHP版本是什么?
import winsound
winsound.Beep(537, 2000)
Run Code Online (Sandbox Code Playgroud) 我的SVN不会提交:
mac:MiTokeniPhone anemployee$ svn commit .
svn: Commit failed (details follow):
svn: '/Users/anemployee/Desktop/MiTokeniPhone/main_bg.png' is scheduled for addition, but is missing
Run Code Online (Sandbox Code Playgroud)
我用了:
svn revert -R .
有没有办法避免不得不还原?
什么在postgresql中等同于此
run('echo "CREATE DATABASE %s;"|mysql --batch --user=%s --password=%s --host=%s' % (dataname, env.mysqluser, env.mysqlpassword, env.mysqlhost), pty=True)
Run Code Online (Sandbox Code Playgroud)
以上工作适用于创建mysql数据库,但是如何在postgresql中创建一个而不会卡在密码提示符下.
php编码器如何工作?他们需要安装任何服务器端软件吗?我怎么用它们?
下面哪一个是最好的 PHP编码器?
我有一个ComboBox,我设置了DrawMode = DrawMode.OwnerDrawFixed.然后我处理OnDrawItem事件,一切都很完美.但是,它看起来与标准的ComboBox非常不同,因为我似乎没有使用VisualStyles渲染.我是否需要做一些事情来专门为我的所有者绘制控件启用VisualStyle渲染?我在我的控制下尝试过SetWindowTheme,但我不确定要发送什么样的主题类.任何帮助将非常感激.谢谢!
可能重复:
SourceSafe在项目级别合并
我有VSS 6.0.我已经分支了我的项目,以便我可以进行并行开发.我在文件夹/子文件夹中有100个文件.我在ver 2分支中的多个文件夹中更改了一些10-20个文件.
现在我想将ver 2中完成的更改合并到ver 1分支.当我选择项目时,合并分支选项未启用.当我在文件夹中选择多个文件时,它都没有启用.它仅在选择一个文件时启用.
我是否可以合并VSS 6.0中的文件夹/多个文件.我的想法是,当我合并项目时,VSS会在出现冲突时弹出文件名(即更改的文件)
有没有人知道Linux的一个好的,免费的,可视的SVN客户端?