【发布时间】:2023-03-30 12:27:01
【问题描述】:
我在一个程序中编写一个功能,用户可以编辑存储在数据库中的文档,它将文档保存到一个临时文件夹,然后使用 Process.Start 将文档启动到编辑应用程序中,例如 Microsoft Word。
然后我的应用程序需要等到他们关闭被调用的进程并将数据库中的文档替换为临时文件夹中新编辑的副本。
只要被调用的应用程序尚未运行,以下代码就可以正常工作:
ProcessStartInfo pInfo = new ProcessStartInfo();
pInfo.FileName=TempFolder + Path.DirectorySeparatorChar + f.Name;
Process p = new Process();
p.StartInfo = pInfo;
p.Start();
//p is null at this point if called application was already running
//i.e. Microsoft Word is re-used instead of starting a fresh copy
p.WaitForInputIdle();
p.WaitForExit();
有没有办法强制开始一个全新的进程,或者任何人都可以想出另一种方法来处理这个问题。我真的不希望用户能够在我的应用程序中执行任何其他操作,直到他们关闭被调用的进程,因为我需要知道他们是否在那个时间点编辑了该文件,而不是稍后当各种其他问题可能会蔓延。
【问题讨论】:
-
编辑标签更通用,以便在更多提要上看到问题。