如何 运行 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",但更好的选择可能是使用不同的可执行文件来处理后台任务,而不是对连续运行进行排队。
我开发了一个 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",但更好的选择可能是使用不同的可执行文件来处理后台任务,而不是对连续运行进行排队。