在编写远程桌面捕获应用程序时使用任务或线程
Use Task or Thread when Coding a Remote Desktop Capture App
最近我正在编写一个远程桌面应用程序。
对于客户端,我有一个 Windows 具有图片框控件和按钮的表单应用程序。在内部,我有两个监听器和两个 TcpClient,一个用于保持连接,另一个用于从远程计算机接收图像。
对于作为控制台应用程序的服务器端,我有两个连接到远程客户端的 TcpClient 对象。建立连接后,服务器开始拍摄桌面快照并将它们发送到客户端。然后客户端接收图片并在图片框控件上显示图片。
要在图片框上显示图像并确保它是异步的,必须使用任务或线程。但是在这种情况下,哪个更好地用于接收图像并将其显示在图片框控件上?
此致
编辑:
补充我的问题,哪个在性能方面和系统资源使用方面最好?
您可能不需要使用 Thread
class,它的级别很低,很难将单独的异步操作组合在一起。
Task
API 更易于使用并将多个异步操作组合在一起,它们还支持取消并通过 async
和 await
关键字提供语言支持,这使得编写异步代码成为可能容易得多,尽管仍然需要了解它是如何工作的,因为可能会有一些陷阱。有关最佳做法的更多详细信息,请参阅 this link。
最近我正在编写一个远程桌面应用程序。
对于客户端,我有一个 Windows 具有图片框控件和按钮的表单应用程序。在内部,我有两个监听器和两个 TcpClient,一个用于保持连接,另一个用于从远程计算机接收图像。
对于作为控制台应用程序的服务器端,我有两个连接到远程客户端的 TcpClient 对象。建立连接后,服务器开始拍摄桌面快照并将它们发送到客户端。然后客户端接收图片并在图片框控件上显示图片。
要在图片框上显示图像并确保它是异步的,必须使用任务或线程。但是在这种情况下,哪个更好地用于接收图像并将其显示在图片框控件上?
此致
编辑: 补充我的问题,哪个在性能方面和系统资源使用方面最好?
您可能不需要使用 Thread
class,它的级别很低,很难将单独的异步操作组合在一起。
Task
API 更易于使用并将多个异步操作组合在一起,它们还支持取消并通过 async
和 await
关键字提供语言支持,这使得编写异步代码成为可能容易得多,尽管仍然需要了解它是如何工作的,因为可能会有一些陷阱。有关最佳做法的更多详细信息,请参阅 this link。