我有一個在VS2010中創建的C++ DLL。該DLL負責生成報告並將其發送到服務器。該DLL由實際創建數據的另一個應用程序調用。由於發送文件到服務器需要一些時間,所以我不希望調用應用程序等到DLL忙於將文件發送到服務器。VS2010中的多線程
爲了解決上述問題,我想將文件發送到一個服務器(只有一個小函數)到一個單獨的線程的任務,並且不想等待這個線程完成(否則沒有好處)。
while(UserShutDownTheApp)
{
- Main App Gather Data
- Main App Call data management DLL and pass data to it
- DataManagementDLL: Generate a Report
- DataManagementDLL: Start a THREAD and Send report to Server by this THREAD. Do not wait for this THREAD to complete
- Main App finishes this iteration and is going to enter into next iteration.
}
因爲我沒有主調用應用程序的控制權,所以我只能在DLL內進行修改。我很困惑我應該如何實現這個邏輯?我的意思是,如果線程沒有完成將文件發送到服務器的任務,並且主調用應用程序第二次已經調用該DLL,會發生什麼情況。