• C

Monitoring Threads from a 3rd Party API

I am using a third party multithreaded API within my application to handle the receiving of real-time data.  Is there a way within my application to monitor the threads that the API creates and whether they are finished working or not?  I am programming in C using Visual Studio .net.  Any and all help would be appreciated, as well as any sample code.
jtradesAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

jkrCommented:
>>Is there a way within my application to monitor the threads that the API creates and whether they are finished
>>working or not?

You can do that by providing a simple DLL that is loaded before you use any of these APIs. All you have to do is to provide a 'DllMain()' which will get notified about the threads:

// DllMain() is the entry-point function for this DLL.
BOOL
WINAPI
DllMain ( HINSTANCE, DWORD dwReason, LPVOID) {

    DWORD dwTID = 0;

    switch ( dwReason) {
 
        // The attached process creates a new thread.
 
        case DLL_THREAD_ATTACH:

            dwTID = GetCurrentThreadId ();  // grab the TID, since this code
                                            // is executing in the thread's
                                            // context
 
            break;
 
        // The thread of the attached process terminates.
 
        case DLL_THREAD_DETACH:
 
            dwTID = GetCurrentThreadId ();
           
            break;
 
        default:
            break;
    }
 
    return TRUE;
}

This way, you can easily keep track about thread creation and termination.
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
C

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.