首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是工作线程?

什么是工作线程?
EN

Stack Overflow用户
提问于 2011-02-17 18:57:05
回答 2查看 1.4K关注 0票数 0

这是什么工作线程?如何实现它们?以及何时使用它们。我问这个是因为很多人提到他们,但我在网上找不到他们的一些例子。或者仅仅是创建线程的一种说法?谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-02-21 19:19:11

在线程世界中,工作线程本身并不是一个有意义的术语。

我猜你的意思是“What are worker threads”?

在这种情况下,让我告诉您,worker thread通常用于处理后台任务,用户无需等待即可继续使用您的应用程序。

例如重新计算和后台打印。

为了实现工作线程,应该定义定义线程的控制函数。当进入这个函数时,线程启动,当它退出时,线程终止。此函数应具有以下原型:More Information

代码语言:javascript
复制
UINT MyControllingFunction( LPVOID pParam );  

实现工作线程控制功能的一小段代码,

代码语言:javascript
复制
UINT MyThreadProc( LPVOID pParam )
{
    CMyObject* pObject = (CMyObject*)pParam;

    if (pObject == NULL ||
        !pObject->IsKindOf(RUNTIME_CLASS(CMyObject)))
    return 1;   // if pObject is not valid

    // do something with 'pObject'

    return 0;   // thread completed successfully
}

// inside a different function in the program
.
.
.
pNewObject = new CMyObject;
AfxBeginThread(MyThreadProc, pNewObject);
.
.
.
票数 0
EN

Stack Overflow用户

发布于 2011-02-18 14:10:26

“工作线程”是独立于某个主线程执行某些任务的线程的通用术语。根据使用情况,它可以简单地表示主UI线程以外的任何线程,也可以表示执行范围良好的任务的线程(即“作业”,而不是持续应用程序生命周期的连续操作)。

例如,您可能会派生一个辅助线程,以便通过网络从远程计算机检索文件。它可能会向应用程序的主线程发送进度更新。

每当我想要在不占用用户界面的情况下执行一项冗长的任务时,我都会使用工作线程或后台线程。线程通常允许我通过编写一系列连续的语句来简化代码,而不是复杂的非阻塞体系结构。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5028020

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档