8

私はを頂きたい

  • 関数を介してファイルをコピーする1つのバックグラウンドスレッドSHFileOperation、常に一度SHFileOperationに1つだけ(ただし、スレッドに入れたい)
  • UI出力が必要なので、FOF_SIMPLEPROGRESSフラグを使用してWndメンバーに何かを渡す必要があります

2つの質問があります

  1. main 以外のスレッドからSHFileOperationwithフラグ (ユーザー操作用)を呼び出しても安全ですか?FOF_SIMPLEPROGRESS
  2. はいの場合、どのハンドルをWndメンバーに渡す必要がありますか? メインフォームのハンドルを試してみたのですが、例えば上書き確認のダイアログが出てきて確認するとメインフォームがバックグラウンドに回ってしまい、どうもおかしいです

注: これらの操作のキューがあるため、一度SHFileOperationに実行されるのは 1 つだけです (終了後、スレッドは次のアクションに進みますSHFileOperation) 。

どうもありがとう

4

1 に答える 1

7
  1. SHFileOperationメインスレッド以外のスレッドから呼び出しても完全に安全です。
  2. 私はメンバー0として合格します。hwndメインウィンドウのハンドルを渡すSHFileOperationと、モーダルダイアログであるため、ウィンドウが無効になると思います。ファイルの確認ダイアログと進行状況ダイアログはバックグラウンド スレッドの最上位 UI であるため、これらのモーダル ダイアログが表示されたときにウィンドウを無効にしないでください。
于 2012-02-28T14:42:13.383 に答える