私は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を2回目に呼び出していた場合はどうなりますか。