我有一个在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,会发生什么情况。