问题列表 - 第18059页

.NET Frustration - Process.GetProcessById返回新引用

我正在编写将启动许多子进程的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!所以,我修复了一个问题只是为了创造另一个问题.

所以,我想我有两个问题:

  • 为什么.NET只返回对已经运行的Process实例的引用?
  • 我可以做什么来匹配存储在我的字典中的进程,因为使用进程ID并不总是在Process对象的生命周期内有效?

.net equals long-running-processes

3
推荐指数
1
解决办法
1372
查看次数

如何修复此堆栈溢出错误?

所以我认为我认为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)

java stack-overflow recursion sudoku

2
推荐指数
1
解决办法
2万
查看次数

使用悬停更改提交按钮图像

我使用方法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,这将是什么样的确切方法?

谢谢大家,已经回答了!

javascript css mouseover hover

4
推荐指数
1
解决办法
1万
查看次数

如何使PHP输出声音(哔哔声)?

这个python代码的PHP版本是什么?

import winsound
winsound.Beep(537, 2000)
Run Code Online (Sandbox Code Playgroud)

php python synthesizer beep

2
推荐指数
1
解决办法
1万
查看次数

由于缺少文件,SVN提交失败

我的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 .

有没有办法避免不得不还原?

svn

21
推荐指数
4
解决办法
3万
查看次数

fabric postgresql创建数据库

什么在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中创建一个而不会卡在密码提示符下.

postgresql fabric

2
推荐指数
1
解决办法
1807
查看次数

最好的PHP编码器

php编码器如何工作?他们需要安装任何服务器端软件吗?我怎么它们?

下面哪一个是最好的 PHP编码器?

  • Ioncube公司
  • sourceguardian
  • phpshield
  • phpcipher
  • truebug

php encoder

7
推荐指数
0
解决办法
3万
查看次数

带有VisualStyles的OwnerDraw ComboBox

我有一个ComboBox,我设置了DrawMode = DrawMode.OwnerDrawFixed.然后我处理OnDrawItem事件,一切都很完美.但是,它看起来与标准的ComboBox非常不同,因为我似乎没有使用VisualStyles渲染.我是否需要做一些事情来专门为我的所有者绘制控件启用VisualStyle渲染?我在我的控制下尝试过SetWindowTheme,但我不确定要发送什么样的主题类.任何帮助将非常感激.谢谢!

c# combobox winforms

6
推荐指数
1
解决办法
2410
查看次数

如何在VSS中合并项目/多个文件?

可能重复:
SourceSafe在项目级别合并

我有VSS 6.0.我已经分支了我的项目,以便我可以进行并行开发.我在文件夹/子文件夹中有100个文件.我在ver 2分支中的多个文件夹中更改了一些10-20个文件.

现在我想将ver 2中完成的更改合并到ver 1分支.当我选择项目时,合并分支选项未启用.当我在文件夹中选择多个文件时,它都没有启用.它仅在选择一个文件时启用.

我是否可以合并VSS 6.0中的文件夹/多个文件.我的想法是,当我合并项目时,VSS会在出现冲突时弹出文件名(即更改的文件)

merge visual-sourcesafe

5
推荐指数
0
解决办法
303
查看次数

Debian Linux的Visual SVN客户端

有没有人知道Linux的一个好的,免费的,可视的SVN客户端?

linux svn debian svn-client

12
推荐指数
3
解决办法
3万
查看次数