C# - Server/Client 多线程或异步

C# - Server/Client multithreaded or async

我的 C# UI、Client/Server 应用程序应该是多线程的还是异步的? 现在我已经用多线程实现了。但这是正确的方法吗?应该 我将其更改为异步等待模式?

如果它是客户端 GUI 应用程序,我会选择异步等待方法。在 GUI 上下文中使用 async-await 感觉更多 "natural"。我已经编写了一个 Xamarin 表单应用程序,用于从 Azure 中的数据库中获取数据库条目,使用异步等待很容易做到这一点。

您好,asyn/await 模式是多线程的最佳选择。使用此模式,即使代码 运行 是异步的,也不会创建新线程。它使用底层状态机来实现异步特性。当您处理所有请求 运行 在线程池线程中的客户端/服务器应用程序时,这很好。启动一个新线程意味着您最终可能会服务更少的请求(因为请求将排队等待线程)。使用异步调用,您将每秒处理更多数量的请求,因为线程在长 运行ning I/O 或网络调用期间不会被阻塞。如果您有更多问题,请告诉我。谢谢