問題タブ [createthread]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - C++ CreateThread() LPSTR 引数エラー Windows 7 (64)
CreateThread() 関数を使用して簡単なプログラムを作成しようとしています。LPSTR
struct 内の新しいスレッド関数に引数を渡す必要がありますpDataArray
。MSDNの例(MSDN CreateThread() Example)に従っています。
メイン関数 (CreateNewThread) は、別の関数からLPSTR command
サンプル テキスト"hi all"を含む変数を受け取り、正しく動作し、正しく構造体に導入されますが、それをスレッド化された関数 (MyThreadFunction) に送信しようとすると、多くの奇妙なエラーが返されます文字、メモリダンプ私は推測します:
CreateThread 関数のコードは次のとおりです。
MyThreadFunction() のコードは次のとおりです。
LPSTR
スレッド化された関数に変数を送信する正しい方法を教えてもらえますか?
アドバイスありがとう。
c++ - GetExitCodeThread() で取得した値が間違っています
CreateThread()
有効なパラメーターを使用してスレッドを作成しました。単純な条件に基づいて、1 に設定された型変数if-else
を返します。DWORD
次に、関数内:
私はWaitForSingleObject()
INFINITE
嘘をつきます。次に function を呼び出しますGetExitCodeThread()
。
私は何をしても変わらない、異なる価値を手に入れます。常に 6 です。
WaitForSingleObject
また、これらのいずれかを使用する必要があるのか 、GetExitCodeThread
それとも使用する必要があるのか も混乱しています。MSDN では、2 つが互いの代わりになることは言及されていません。ただ、WaitForSingleObject
成功したら画像のスレッドハンドルが解放されるか、最悪の場合は別のスレッドに割り当てられる可能性があると単純に考えています。それならGetExitCodeThread
惨めに失敗するでしょう。
c++ - 最後に作成されたスレッドのみを実行するマルチスレッドプログラム?
4 つのスレッドを作成しましたが、このプログラムを実行すると、次のような出力が得られます。
2 つの質問があります。
- スレッドは 4 つしか作成していないのに、なぜスレッド #: 5 が表示されるのですか?
- 作成された 4 つのスレッドはすべて順次実行されるはずですが、最後に作成されたスレッドのみが実行されるのはなぜですか?
ソースコード:
c - CreateThread はメモリ順序の保証を提供しますか?
pthread_create はメモリ順序の保証を提供しますが ( The Open Group Base Specifications Issue 7: Memory Synchronization )、Synchronization and Multiprocessor Issues: Memory Orderingの文言とCreateThread 関数の文言の欠如は、CreateThread がそうでないことを示唆しています。
winapi - CreateThread でクラス関数を呼び出すときのエラー C3867
メイン関数から呼び出された CreateThread にクラス関数を渡そうとしましたが、エラーが発生しました:
エラー C3867: 'Display::fill_matrix': 関数呼び出しに引数リストがありません。「&Display::fill_matrix」を使用して、メンバーへのポインターを作成します
c++ - C++ CreateThread() 奇妙なエラー
アプリケーションで CreateThread() 関数を使用しようとしましたが、奇妙なエラーが発生しました。
と
2 番目は行を示します
winbase.h では、何が起こっているのかわかりません。例では同じことですが、エラーはありません。私は何を間違っていますか?
コード:
c# - C++ の関数ポインター
CreateThread 関数を使用して、C++ でC# BackgroundWorkerのようなクラスを作成しました。私のコード:
BackgroundWorker.h:
BackgroundWorker.cpp:
次に、BackgroundWorker から派生した別のクラスを作成しました。
ListenThread.cpp:
しかし、その行は私に次のエラーを与えます:
非標準構文; 「&」を使用してメンバーへのポインタを作成します
c - SetWindowsHookEx の使い方との違い
最初: Windows XP - 32 ビットで Visual Studio 2010 を使用しています。
現在、別のアプリケーションが低レベルのキーボード フックを使用できるようにする DLL を作成しようとしています。
動作するようになりましたが、理由を理解したいと思います。
非動作コード:
作業コード:
唯一の違いは、SetWindowsHookEx
-call を からに移動したDllMain
ことThreadProc
です。
質問:なぜこれがすべての違いを生むのですか?