如何 运行 WinForms 应用程序的多个实例

How to run multiple instance of WinForms application

我开发了一个 WinForms 应用程序用于两个目的

1) 它有一个表单,可以接受用户的配置并存储它

2) 根据在步骤 1 中输入的配置值。将创建一个任务计划程序,将文件从本地文件夹传输到 FTP

现在,当任务是来自调度程序的 运行 时,同时如果我打开一个表单,它会给我类似

的错误
Process/exe is already in use. Cannot start new instance.

是否可以在与调度程序任务不同的实例中打开表单?

[STAThread]
static void Main(string[] args)
{

if (args.Length > 0 && args[0] == "AutoRun")
{
Logger.Info("Auto run successfull.");
GetConfigValues getConfigValues = new GetConfigValues();
UploadToFTP uploadToFTP = new UploadToFTP();
string result = uploadToFTP.UploadFile(getConfigValues.LocalPath, getConfigValues.FTPServer, getConfigValues.FTPFolderPath, getConfigValues.FTPUsername, getConfigValues.FTPPassword);
}
else
{
Logger.Info("Manual run successfull.");
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Login());
    }
}

假设这与 Task Scheduler 有关,而不是您的具体应用程序:

当目标进程已经 运行 时,您可以配置 Task Scheduler 任务的行为。在 UI 中,它位于 Settings 选项卡上,"If the task is already running..."。默认为"Do not start a new instance";你想要的可能是 "Run a new instance in parallel",但更好的选择可能是使用不同的可执行文件来处理后台任务,而不是对连续运行进行排队。