当前位置: 首页 > 编程语言 > C#

什么是工作线程,它与我创建的线程有何不同?分享

时间:2023-04-10 17:45:16 C#

什么是工作线程,它们与我创建的线程有何不同?我创建了一个线程ThreadnewThread=newThread(DoSomeWork);...privatevoidDoSomeWork(){}这与工作线程有什么不同吗?如果是..哪个更好,我应该什么时候使用工作线程?我的应用程序需要有许多线程进行监视、刷新……通常,工作线程一词用于描述线程中正在当前线程上工作的另一个线程——在许多情况下是前台线程或UI线程。然而,这并非一成不变。Windows程序通常使用单个主线程来管理UI,这通常是同步的(即事情一个接一个地运行)。如果您正在执行长时间运行的任务,那么为了避免在这些类型的程序中创建UI块,您可以使用工作线程(可以是前台或后台线程)来完成工作(与主线程异步)然后呈现结果被主线程消耗。在Windows程序中,这是通过消息完成的。如果您使用特定的库,如.net框架,则有特殊的实用程序类,如ThreadPool和BackgroundWorker可以使后台或工作线程处理更容易。但是,与往常一样,您可以使用平台原语来实现相同的目的。我试图以一种简单的方式解释这个概念,希望它有助于更??好地理解工作线程的概念。一般定义:-“工作线程”只是一个按照老板(我们可以称之为“客户端”)的命令执行一些后台工作并将工作结果更新给老板的线程。技术定义:-工作线程通常定义为根据客户端请求激活的线程。示例1:1-我们有一家比萨店,10位专家准备了美味的比萨。这些被称为“工作线程”。2-我们有一个人接受客户的订单。这个人被称为“客户”。每当收到新订单时,其中一个“工作线程”就会开始准备比萨饼,并在比萨饼准备好时向客户端更新。3-有些工人只有在订单少于10个时才理想。4-当订单超过10个时,订单只会进入等待队列。示例2:1-有一个应用程序服务器侦听端口8080。2-端口8080上有一个请求。3-侦听器线程(称为“客户端”)接受请求并将其分派给完成请求的“工作线程”。在应用程序服务器上实际上维护着一个“工人”池(“工人”程序的许多对象)。4-如果同时有两个请求进来,则分配两个工作线程,并发执行任务。除了术语之外,我想不出太多的技术差异。之所以称为工作线程,是因为它们正在等待完成某些工作,并在分配其他工作时完成工作。例如,Web服务器进程接收请求并将它们分配给其池中的线程进行处理。线程跟随进程并完成工作并返回到池中。在那之前,主线程将做其他事情。为了您的目的:需要持续监控数据库以识别更新/新值。它可能只是一个线程,始终在后台运行,定期唤醒并从数据库更新UI中的值。以上就是C#学习教程:什么是工作线程以及它和我创建的线程的区别?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: