开发者

What are working threads?

开发者 https://www.devze.com 2023-02-11 05:15 出处:网络
What are this working threads? How to implement them? And when to use them. I ask this bec开发者_开发知识库ause many people mention them but I dont find an the net some example of them. Or is just a s

What are this working threads? How to implement them? And when to use them. I ask this bec开发者_开发知识库ause many people mention them but I dont find an the net some example of them. Or is just a saying for creating threads? Thanks.


Working threads isn't itself a meaningful term in the thread world.
I guess you mean to say," What are worker threads" ?

In that case, let me tell you that a worker thread is commonly used to handle background tasks that the user shouldn't have to wait for to continue using your application.
e.g Recalculation and background printing.

For implementing the worker thread, the controlling function should be defined which defines the thread. When this function is entered, the thread starts, and when it exits, the thread terminates. This function should have the following prototype : More Information

UINT MyControllingFunction( LPVOID pParam );  

A short snippet to implement the controlling function of worker thread,

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);
.
.
.


"Worker thread" is a generic term for a thread which performs some task independent of some primary thread. Depending on usage, it may simply mean any thread other than the primary UI thread, or it may mean a thread which performs a well-scoped task (i.e. a 'job' rather than a continuous operation which lasts the lifetime of the application).

For example, you might spawn a worker thread to retrieve a file from a remote computer over a network. It might send progress updates the application's main thread.

I use a worker, or background thread, any time that I want to perform a lengthy task without tying up my user interface. Threads often allow me to simplify my code by making a continuous series of statements, rather than a convoluted, non-blocking architecture.

0

精彩评论

暂无评论...
验证码 换一张
取 消