【发布时间】:2022-06-10 15:26:20
【问题描述】:
目前,我正在编写一个应用程序,需要调用一个 exe 文件来处理图像。但是这个exe文件处理时间比较长,如果我使用WaitForExit,整个软件将无法对表单进行操作。所以我发布这篇文章是希望有人可以帮助我,以便我可以等待exe文件完成处理而不会出现上述情况。 更新:如果我对这个应用程序使用多线程,exe文件会占用计算机的所有内存
【问题讨论】:
-
可能很多技术都可以使用:Background Worker、Tasks、Threadpool。我猜Tasks 将是最现代的方法。
-
@UweKeim 我知道,但我还有另一个问题。也就是说,如果我运行多线程,exe文件将使用计算机上的所有内存,计算机将崩溃。所以不能使用任务,我希望当第一个任务完成时,下一个任务将开始。
-
您可以在进程中使用“Exited”事件。有关示例,请参见 docs.microsoft.com/en-us/dotnet/api/…。
-
没有任何代码,很难评估任何改进或解决特定问题的潜力。
-
`Tasks can't be used`这是错误的。浪费内存的不是任务,而是应用程序的低效代码。 每个人 在 2022 年使用任务。如果您使用 HttpClient 或任何异步调用,您正在使用任务。即使您使用
.Wait()或.Result阻止这些任务