4

我正在使用 c# windows 服务编写。当它正常工作时以这种方式运行。

bool processIsRunning(string process)
{
    return (System.Diagnostics.Process.GetProcessesByName(process).Length != 0);
}     
if (!processIsRunning("notepad"))
{
    Process.Start("notepad.exe");
}

当代码不以这种方式工作时。

StreamReader read = new StreamReader(Environment.GetEnvironmentVariable("appdata") + "\\path.txt");
string path = oku.ReadLine();
string processname = Path.GetFileName("notepad");
if (processIsRunning(processname) == false)
{
    System.Diagnostics.Process.Start(path);
}

我正在从注册表中获取程序的名称和程序路径。

4

1 回答 1

0

您的问题没有多大意义,但是如果您发布的代码是您的整个相关代码,则可能存在一些问题。

StreamReader的被称为read,但你正试图从一个名为的流中读取oku

此外,您还没有表明您实际上关闭了StreamReader, you would be better of using ausing` 块以确保您的 Stream 已正确关闭和处置。

using (StreamReader read = new StreamReader(Environment.GetEnvironmentVariable("appdata") + "\\path.txt"))
{
    string path = read.ReadLine();
    string processname = Path.GetFileName("notepad");
    if (processIsRunning(processname) == false)
    {
        System.Diagnostics.Process.Start(path);
    }
}
于 2012-12-06T09:54:47.007 回答