【发布时间】:2017-09-01 12:48:45
【问题描述】:
我有一个在 VS2010 中创建的 C++ DLL。此 DLL 负责生成报告并将其发送到服务器。此 DLL 由实际创建数据的另一个应用程序调用。由于将文件发送到服务器需要一些时间,因此我不希望调用应用程序等到 DLL 忙于将文件发送到服务器。
为了处理上述问题,我想将发送文件到服务器的任务(只是一个小功能)分配给一个单独的线程,并且不想等待这个线程完成(否则没有好处) .
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,会发生什么。
【问题讨论】:
标签: c++ windows multithreading visual-studio-2010