【发布时间】:2021-01-16 00:58:12
【问题描述】:
我正在尝试创建一个简短的方法,在默认图像查看器中打开图像,并在 time 毫秒后关闭它。
现在看起来是这样的:
public static async void OpenImage(string path, int time)
{
var process = new Process();
process.StartInfo.FileName = path;
process.Start();
await Task.Delay(time);
process.Kill()
process.Close()
}
我可以看到图像,但随后process.Kill() 抛出InvalidOperationException,“没有进程与此对象关联。”
我错过了什么还是有其他方法可以做到这一点?
更新:
现在也测试了这个:
public static async void OpenImage(string path, int time)
{
var process = Process.Start(path)
await Task.Delay(time);
process.Kill()
process.Close()
}
然后Process.Start() 返回null。所以也许我必须像 faljbour 评论的那样直接致电.exe?
【问题讨论】:
-
我认为你的进程在你调用 kill 之前就终止了,如果你删除了 kill() 和 close(),你的异常可能会消失
-
但是它永远不会关闭?我仍然可以看到图像查看器是打开的,所以在我调用 kill() 之前它并没有关闭。这就是为什么我对这个异常有点困惑。
-
能否发布调用此 OpenImage 方法的代码,我想看看路径中的内容。
-
发帖有点长,但是路径只是我电脑上一张图片的正常路径,例如“C:\SomeFolder\image.png”
-
但是你想杀死什么可执行文件。您必须使用可执行文件来显示图像