C# 如何暂停后台进程?
我有一个通过API将文件上传到服务器的应用程序,是一个c#中的WinForm应用程序,这个应用程序启动了一个进程 此进程是另一个WinForm应用程序的.exe文件。我试图通过id、名称获取进程,甚至获取所有进程,但我找不到已启动的进程 问题是我运行上传文件的过程,表单有一个取消按钮,这个按钮应该暂停过程并询问用户是否要取消操作,如果他单击是,我必须调用另一段代码,但我找不到该过程,我不能中断或暂停C# 如何暂停后台进程?,c#,winforms,process,C#,Winforms,Process,我有一个通过API将文件上传到服务器的应用程序,是一个c#中的WinForm应用程序,这个应用程序启动了一个进程 此进程是另一个WinForm应用程序的.exe文件。我试图通过id、名称获取进程,甚至获取所有进程,但我找不到已启动的进程 问题是我运行上传文件的过程,表单有一个取消按钮,这个按钮应该暂停过程并询问用户是否要取消操作,如果他单击是,我必须调用另一段代码,但我找不到该过程,我不能中断或暂停 有什么想法吗?你不能阻止它,你只要找到exe名称并杀死它就行了 DialogResult di
有什么想法吗?你不能阻止它,你只要找到exe名称并杀死它就行了
DialogResult dialogResult = MessageBox.Show("Sure", "Some Title", MessageBoxButtons.YesNo);
if(dialogResult == DialogResult.Yes)
{
try
{
foreach (Process proc in Process.GetProcessesByName("_procExe"))
{
proc.Kill();
}
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
}
else if (dialogResult == DialogResult.No)
{
//do something else
}
你不能阻止它,你只要找到exe名称并杀死它
DialogResult dialogResult = MessageBox.Show("Sure", "Some Title", MessageBoxButtons.YesNo);
if(dialogResult == DialogResult.Yes)
{
try
{
foreach (Process proc in Process.GetProcessesByName("_procExe"))
{
proc.Kill();
}
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
}
else if (dialogResult == DialogResult.No)
{
//do something else
}
如果可以编辑上载应用程序,可以尝试以下操作:
- 在当前用户中创建一个注册表项,该注册表项将有一个暂停条目(0表示继续,1表示暂停),上载应用程序在上载时会定期检查该条目。 如果在注册表项中找到1,它将暂停其操作
- 如果要暂停应用程序,请将此标志设置为1并显示确认框
- 如果用户选择取消上载,则可以使用_proc.Kill(),否则将注册表暂停项返回到0,上载应用程序将再次拾取并恢复该项
- 在当前用户中创建一个注册表项,该注册表项将有一个暂停条目(0表示继续,1表示暂停),上载应用程序在上载时会定期检查该条目。 如果在注册表项中找到1,它将暂停其操作
- 如果要暂停应用程序,请将此标志设置为1并显示确认框
- 如果用户选择取消上载,则可以使用_proc.Kill(),否则将注册表暂停项返回到0,上载应用程序将再次拾取并恢复该项