問題タブ [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 、 pthread_create 関数を使用してスレッドを作成する方法
タスクを取得してリンクリストであるキューに入れるディスパッチキューのacファイルを作成しています。これを行うには、次を使用してスレッドを作成する必要があります
ただし、作成関数のパラメーターとして「work」および「param」変数に入る別の関数を作成する必要があります。私の友人は、スレッドが死なないように無限にループするコードを作業関数に入れるだけでよいと私に言いました。各パラメーターがpthread_create
関数に入るのを説明できますか?特にwork
andの場合param
? これをGoogleで検索しましたが、ほとんどのチュートリアルは概念を理解するのが難しいです...
c++ - メンバー関数で CreateThread を使用する際の問題
オブジェクトにスレッドを作成しようとしていますが、'&' : illegal operation on bound member function expression.
Reading up I seen I had to make the member function static というエラーが表示されますが、それを行うと次のエラーが表示されますleft of '.dac_ping' must have class/struct/union
これは私がしようとしているものです:
linker - Mingw32 の奇妙なリンカの警告
これは警告です:
この関数worker
は、CreateThread の開始ルーチンです。は次のように定義されます。
これは で定義されておりworker.h
、これを に含めてwgroup.c
、CreateThread を呼び出します。そして、これは CreateThread への呼び出しであり、特別なことは何もありません:
プログラムを実行すると、(おそらく) CreateThread 呼び出しでシャットダウンしました。このプログラムは Linux 上で Wine の下で実行されています。これがデバッグの問題の原因です。クラッシュに関する情報はあまり収集できませんでした。
したがって、問題はその警告にあると思います。私はそれを無視すべきだとは思いませんし、それを修正する方法も、リンカの問題が何かもわかりません。
ありがとう。
c - pthread_create を介して構造体を渡すのが難しい
構造体の配列があり、配列の各要素を for ループ内の個別の pthread に渡すつもりです。
ここに私の構造体があります:
最初の構造体と malloc へのポインターを次に示します (ここで何が起こっているのかよくわかりません)。
pthread_create への私の呼び出しは次のとおりです。
そして、その行について、「ポインター型に変換できません」というメッセージが表示されます。
その行の何が問題になっている可能性がありますか?
c++ - CreateThread()c++でのThreadIdの重要性
C ++のCreateThread()関数について疑問があります。
この関数のthreadIdパラメーターの重要性は何ですか?
また、同じthreadIdを使用して同じスレッド(同じ名前)を作成できますか?お気に入り
この方法は可能ですか?threadIdに含まれる値は何ですか?上記のコーディングを行うことにより、2番目のスレッドの作成は最初のスレッドのthreadId値を上書きしますか?
c++ - CreateThread関数への複数の引数
CreateThread APIメソッドを使用する場合、LPVOID lpParameterが渡される複数のパラメーターを渡したい場合はどうすればよいですか?
c++ - C++-CreateThread-コンパイルエラー
窓を扱うのはこれが初めてです。スレッドを作成しようとしましたが、コードをコンパイルできません。
これは私のコードの一部です:
私も試しました:
どちらもコンパイルされていません。onyoneは何が問題なのか知っていますか?
(私はWindows XPを使用しています)
ありがとう。
c++ - クラス コンストラクターでこのポインターを CreateThread に渡すと、スレッド プロシージャーでの動作がおかしくなる
クラスの 1 つのコンストラクターで、CreateThread
最後の操作として Windows 関数を呼び出します。すぐに実行するスレッドが作成され、クラスの this ポインターを として渡しますlpParameter
。
スレッド プロシージャで、渡されたパラメーターをクラスのポインターにキャストし、名前を付けますpThis
。
を呼び出したときに渡したポインタと同じメモリ位置pThis
を指していることがわかります。ただし、アクセスされるメンバー変数を見ると、それらはすべて間違った値を持っています。this
CreateThread
pThis->...
this->member_variable
this ポインターが属するクラスの usedの値はpThis->member_variable
、スレッドのプロシージャーに記述したときに取得する値と同じであると予想していました。
CreateThread
別のメンバー関数 (コンストラクターではない)を呼び出すと、すべてが正しく動作します。
したがって、質問: CreateThread
C++ クラスのコンストラクター内から Windows 関数を呼び出すことは禁止されていますか? はいの場合、何が問題ですか?
説明:
1) オブジェクトが常に存在することを確認できます。オブジェクトは、プログラム全体が終了したときにのみスコープから外れます。既に述べたようにCreateThread
、他のメンバー関数からの呼び出しは機能します。
2) 「有線」の誤字を修正しました。「変」だったはずです。申し訳ありません。
いくつかのコード:
「欠陥のある」部分を維持しながら、物事を最小限に減らすコードスニペットを投稿しようとしています。
CTimer
基本クラスは、さまざまなプラットフォームでのビルドを可能にする単なる抽象基本クラスであるため、安全に無視できます。
m_hCompletitionEvent
ここで、 への呼び出し後に有効であることがわかりますCreateEvent
。
ここで、 への呼び出しで問題が発生していますWaitForSingleObject
。既に述べたように、クラスCTimerW32
(現在pThis
) のオブジェクトの this ポインターは、スレッドの作成時に this ポインターと同じ値を保持しています。ただし、ハンドルはpThis->m_hCompletitionEvent
ランダム データのようです。CreateEvent
コンストラクターでの呼び出し後に観察される値ではありません。
c++ - CreateThread() に整数を渡すには?
int パラメータを CreateThread コールバック関数に渡す方法は? やってみる:
しかし、私は警告を受け取ります:
multithreading - 複数のクライアントが接続している場合、Winsockスレッドサーバーはうまく機能しませんか?
接続するクライアントごとにスレッドを生成するサーバーがあります。次に、スレッドはクライアントへのデータの送受信を処理します。これが私のサーバーコードです:
そして、これが私のスレッド関数がどのように見えるかです:
問題:
だから私はサーバーとクライアントを起動します、例えばclient1(win7のコマンドプロンプトから)、すべてがうまくいきます。client1ターミナルで何かを入力すると、サーバーターミナルに出力されます。
次に、別のクライアントclient2を起動すると、サーバーに接続され、入力した内容がサーバーに表示されますが、client1で何かを入力しても、サーバーターミナルに表示されません。
したがって、基本的に、新しいクライアントを起動するたびに、そのクライアントのみがサーバーと通信でき、古いクライアントは通信できません!!! しかし、スレッドは各クライアントを処理し続けると思いましたか?それとも、Windowsのcmdプロンプトがスレッドセーフではないということですか?