第四パラメータ
答えて
pthread_create
の4番目のパラメータは、スレッド関数にそのまま渡され、その関数がその引数に基づいて動作を変更できるようにします。
OpenGroupのpthread_create
の詳細については、hereを参照してください。
この場合、単に現在のオブジェクトにポインタを渡すだけです。おそらく、start
関数がそれを使用して特定のオブジェクトのメンバー変数にアクセスできるようにします。
代わりにNULL
を渡すと、作成されたスレッドはNULL
になり、オブジェクト固有のデータにアクセスすることができなくなります(ヌルポインタの逆参照でひどくクラッシュして焼き付くことはありません)。
QThreadPrivate::start
は静的関数なので、非静的メンバーにはアクセスできません(一般的には処理対象のオブジェクトがないため)。
しかし、それ
は暗黙のアクセスに適用されます - 明示this
ポインタを通じてオブジェクトデータにアクセスするからあなたを止めるものは何もありません、あなたがアクセスルールに従って提供する(例えば、個人データへのアクセスなし)。
4番目のパラメータは、起動時にスレッドに渡されます。 QThreadPrivate :: startは、(適切なキャストの後で)それを使用してオブジェクト固有のメンバ関数を呼び出すことができます。
これは一般的なイディオムです。スレッドを開始したいが、そのスレッドを特定のオブジェクトで操作したい。そのため、スレッドに操作対象のオブジェクトへのポインタを渡す必要があります。そのオブジェクトのメンバ関数内にある場合、this
ポインタは、操作中のオブジェクトを指しています。型が異なるため、メンバー関数へのポインタを直接渡すことはできませんので、this
ポインタを正しい型にキャストし、非静的メンバー関数を実行することを目的とする静的メンバー関数を使用します。
this
をNULL
に変更した場合、そのスレッドはどのオブジェクトが操作されているのか分かりません。おそらく、QThreadPrivate::start
は、そのインスタンスへのポインタなしでインスタンス上で非静的メンバー関数を呼び出すことができないため、失敗または失敗します。
パラメータがなくパラメータを返さない通常のメンバ関数を持つクラスがあるとします。あなたはあなたのクラスまたはその構造について全く知らないコードをいくつか持っています。特定のクラスインスタンスでそのメンバ関数を呼び出すのに十分な情報をそのコードに与えたいとします。何を渡しますか?クラスについての知識がないため、通常のクラスメンバ関数を呼び出すことができないため、メンバ関数へのポインタを渡すことはできません。答え:これは、実装が通常のメンバ関数を呼び出す静的メンバ関数へのポインタを渡し、メソッドを呼び出すインスタンスへのポインタを渡します。
- 1. ブートストラップタイルグリッド - 第四タイルは
- 2. jQuery Datepicker BeforeShowDay第2パラメータ
- 3. 第四オペレータはReactでレンダリングしますか?
- 4. 小数点第一位を四捨五入SSRS
- 5. レイアウトのハイゲースの第2四半期を取得
- 6. 小数点以下第二位を四捨五入します。
- 7. MSアクセス、要約統計量(平均、中央値、標準偏差、第1四分位点および第3四分位点)
- 8. ソートされた配列の第1四分位数と第3四分位数をどのように計算しますか?
- 9. ジャスミンtoBeCloseTo第2パラメータは何ですか?
- 10. 迅速なフィルタメソッドの第2パラメータ2.0
- 11. ReadConsoleOutputCharacterエラー用いて、第2パラメータ
- 12. .htaccessのWWW - 私は追加する第三または第四レベルドメインをリダイレクトしたい
- 13. 小数点第一位を四捨五入していますか?
- 14. SSRS第1、第2、第3など?
- 15. SVG一角コーナー四角形/四角形
- 16. Excel countif関数で第2パラメータのセル参照を使用
- 17. .htaccessのルール - 同一の第1の最初のパラメータ
- 18. フックスクリプトでGit第2パラメータを取得する方法
- 19. ノードCrypto .createHmac()の第2パラメータは何をしますか?
- 20. convertToFusionCharts第2パラメータが機能しませんか?
- 21. URLにURLの第2パラメータを追加します。
- 22. 方法の変更第二パラメータ 'YoutubeRecyclerAdapter' 'コンテキスト' から 'コールバック<...>' に
- 23. C++のプライマー第5回funcパラメータについて
- 24. バックボーンModel.syncプロキシはなぜ第2パラメータ(モデル)は義務的です
- 25. MATLAB:値を行列としたaccumarray(第2の入力パラメータ)
- 26. LayoutInflaterクラスのinflateメソッドで第2パラメータを使用する方法
- 27. INDEXの第1パラメータを返すテンプレート関数
- 28. array_search()は第2パラメータにエラーをスローする
- 29. PHP関数「第2パラメータが指定されている場合」
- 30. 動的な第2パラメータ(タイプ)を持つVB.NETのCType