gpt4 book ai didi

c# - 运行单独进程的首选架构

转载 作者:太空宇宙 更新时间:2023-11-03 13:29:17 25 4
gpt4 key购买 nike

我想知道以下情况的首选架构是什么:

我需要一个 .NET 应用程序,它可以同时将多个数据文件批量上传到 SQL Server。这将从 WPF 应用程序调用,该应用程序将允许用户选择文件和目标表,以及报告每次上传的单独进度(包括错误消息)。我为这些编写代码绝对没有问题。但是,要求用户能够完全关闭 WPF 应用程序并继续上传过程。此外,如果用户从同一台机器重新启动 WPF 应用程序,它应该能够处理现有的上传并报告状态,就好像程序从未关闭过一样。

我的问题是实现这一目标的方法是什么,哪种方法看起来最标准/最合适?

我曾考虑过不实际关闭 WPF 应用程序而是隐藏所有窗口,但这似乎是一种欺骗。最好在进行上传的服务器上创建一个 WCF 服务并简单地上传文件吗?我认为我无法做到这一点并报告进度 % 等。本地运行的 Windows Service 能达到类似的效果吗?我应该考虑 MemoryMappedFiles 吗?

感谢您的所有想法。

最佳答案

因为您在谈论长时间运行的任务,所以我会使用本地 Windows 服务通过 MSMQ 与您的 WPF 应用程序通信。例如,每个要上传的文件都可以由一条 MSMQ 消息表示。您的 WPF 应用程序会将消息放入队列和 Windows 服务,无论 WPF 是否正在运行,都应定期从队列和进程中取出消息,而不会产生任何影响。这将提供提供任务(上传)的简单可靠的 channel 。

为了向其客户端(您的 WPF 应用程序)提供 Windows 服务的内部状态,我将在其中托管一个 WCF 端点,该端点具有简单的服务,例如,告知进度。

关于c# - 运行单独进程的首选架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21233351/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com