[解決済み] Windowsのスレッド処理。_beginthread vs _beginthreadex vs CreateThread C++.
質問
スレッドを開始する良い方法は何ですか?
_beginthread
,
_beginthreadx
または
CreateThread
?
の利点/欠点は何なのかを判断しようとしているのです。
_beginthread
,
_beginthreadex
と
CreateThread
. これらの関数はすべて新しく作成されたスレッドへのスレッドハンドルを返します。CreateThreadがエラーが発生したときにちょっとした追加情報を提供することはすでに知っています(それを確認するには
GetLastError
を呼び出すことで確認できます)...しかし、これらの関数を使用する際に考慮すべきことは何でしょうか?
私はWindowsアプリケーションで作業しているので、クロスプラットフォームの互換性はすでに問題外です。
msdn のドキュメントに目を通しましたが、たとえば、なぜ誰かが CreateThread の代わりに _beginthread を使うことにしたのか、またはその逆があるのか、どうしても理解できません。
ありがとうございました。
更新しました。
OK、すべての情報に感謝します、私はまた、いくつかの場所で私が呼び出すことができないことを読みました
WaitForSingleObject()
を呼び出すことはできないということです。
_beginthread()
を使用した場合、しかし、もし私が
_endthread()
を呼び出すと、うまくいかないのでしょうか?そこでの取引は何ですか?
どのように解決するには?
CreateThread()
は、カーネル レベルで制御の別のスレッドを作成するための生の Win32 API 呼び出しです。
_beginthread()
&
_beginthreadex()
はCランタイムライブラリの呼び出しで
CreateThread()
を裏で呼び出すランタイムライブラリ呼び出しです。 一度
CreateThread()
が返されました。
_beginthread/ex()
は、新しいスレッドで C ランタイムライブラリを使えるようにするための追加の帳簿を作成します。
C++では、ほぼ間違いなく
_beginthreadex()
C ランタイムライブラリ (別名 MSVCRT*.dll/.lib) にリンクしない場合を除きます。
関連
-
[解決済み】コンストラクターでのエラー:識別子を期待されますか?
-
[解決済み] error: 'if' の前に unqualified-id を期待した。
-
[解決済み】文字列関数で'char const*'のインスタンスを投げた後に呼び出されるterminate [閉店].
-
[解決済み】C++の変数はイニシャライザーを持っているが、不完全な型?
-
[解決済み】「Expected '(' for function-style cast or type construction」エラーの意味とは?
-
[解決済み】システムが指定されたファイルを見つけられませんでした。
-
[解決済み】演算子のオーバーロード C++; <<操作のパラメータが多すぎる
-
[解決済み】警告 - 符号付き整数式と符号なし整数式の比較
-
[解決済み] プログラム終了前にmallocの後にfreeをしないと本当に何が起こるのか?
-
[解決済み] C++によるスレッディングの簡単な例
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] テスト
-
[解決済み] error: 'ostream' does not name a type.
-
[解決済み】 != と =! の違いと例(C++の場合)
-
[解決済み】C++エラーです。"配列は中括弧で囲まれたイニシャライザーで初期化する必要がある"
-
[解決済み】C++の変数はイニシャライザーを持っているが、不完全な型?
-
[解決済み] 既に.objで定義されている-二重包含はない
-
[解決済み】浮動小数点例外エラーが発生する: 8
-
[解決済み】オブジェクト引数のない非静的メンバ関数の呼び出し コンパイラーエラー
-
[解決済み】クラステンプレートの使用にはテンプレート引数リストが必要です
-
[解決済み】標準ライブラリにstd::endlに相当するタブはあるか?