这是什么工作线程?如何实现它们?以及何时使用它们。我问这个是因为很多人提到他们,但我在网上找不到他们的一些例子。或者仅仅是创建线程的一种说法?谢谢。
发布于 2011-02-21 19:19:11
在线程世界中,工作线程本身并不是一个有意义的术语。
我猜你的意思是“What are worker threads”?
在这种情况下,让我告诉您,worker thread通常用于处理后台任务,用户无需等待即可继续使用您的应用程序。
例如重新计算和后台打印。
为了实现工作线程,应该定义定义线程的控制函数。当进入这个函数时,线程启动,当它退出时,线程终止。此函数应具有以下原型:More Information
UINT MyControllingFunction( LPVOID pParam ); 实现工作线程控制功能的一小段代码,
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);
.
.
.发布于 2011-02-18 14:10:26
“工作线程”是独立于某个主线程执行某些任务的线程的通用术语。根据使用情况,它可以简单地表示主UI线程以外的任何线程,也可以表示执行范围良好的任务的线程(即“作业”,而不是持续应用程序生命周期的连续操作)。
例如,您可能会派生一个辅助线程,以便通过网络从远程计算机检索文件。它可能会向应用程序的主线程发送进度更新。
每当我想要在不占用用户界面的情况下执行一项冗长的任务时,我都会使用工作线程或后台线程。线程通常允许我通过编写一系列连续的语句来简化代码,而不是复杂的非阻塞体系结构。
https://stackoverflow.com/questions/5028020
复制相似问题