問題タブ [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.

0 投票する
2 に答える
71888 参照

c - C 、 pthread_create 関数を使用してスレッドを作成する方法

タスクを取得してリンクリストであるキューに入れるディスパッチキューのacファイルを作成しています。これを行うには、次を使用してスレッドを作成する必要があります

ただし、作成関数のパラメーターとして「work」および「param」変数に入る別の関数を作成する必要があります。私の友人は、スレッドが死なないように無限にループするコードを作業関数に入れるだけでよいと私に言いました。各パラメーターがpthread_create関数に入るのを説明できますか?特にworkandの場合param? これをGoogleで検索しましたが、ほとんどのチュートリアルは概念を理解するのが難しいです...

0 投票する
1 に答える
1227 参照

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

これは私がしようとしているものです:

0 投票する
0 に答える
109 参照

linker - Mingw32 の奇妙なリンカの警告

これは警告です:

この関数workerは、CreateThread の開始ルーチンです。は次のように定義されます。

これは で定義されておりworker.h、これを に含めてwgroup.c、CreateThread を呼び出します。そして、これは CreateThread への呼び出しであり、特別なことは何もありません:

プログラムを実行すると、(おそらく) CreateThread 呼び出しでシャットダウンしました。このプログラムは Linux 上で Wine の下で実行されています。これがデバッグの問題の原因です。クラッシュに関する情報はあまり収集できませんでした。

したがって、問題はその警告にあると思います。私はそれを無視すべきだとは思いませんし、それを修正する方法も、リンカの問題が何かもわかりません。

ありがとう。

0 投票する
2 に答える
7179 参照

c - pthread_create を介して構造体を渡すのが難しい

構造体の配列があり、配列の各要素を for ループ内の個別の pthread に渡すつもりです。

ここに私の構造体があります:

最初の構造体と malloc へのポインターを次に示します (ここで何が起こっているのかよくわかりません)。

pthread_create への私の呼び出しは次のとおりです。

そして、その行について、「ポインター型に変換できません」というメッセージが表示されます。

その行の何が問題になっている可能性がありますか?

0 投票する
2 に答える
2237 参照

c++ - CreateThread()c++でのThreadIdの重要性

C ++のCreateThread()関数について疑問があります。

この関数のthreadIdパラメーターの重要性は何ですか?

また、同じthreadIdを使用して同じスレッド(同じ名前)を作成できますか?お気に入り

この方法は可能ですか?threadIdに含まれる値は何ですか?上記のコーディングを行うことにより、2番目のスレッドの作成は最初のスレッドのthreadId値を上書きしますか?

0 投票する
2 に答える
11329 参照

c++ - CreateThread関数への複数の引数

CreateThread APIメソッドを使用する場合、LPVOID lpParameterが渡される複数のパラメーターを渡したい場合はどうすればよいですか?

0 投票する
3 に答える
407 参照

c++ - C++-CreateThread-コンパイルエラー

窓を扱うのはこれが初めてです。スレッドを作成しようとしましたが、コードをコンパイルできません。

これは私のコードの一部です:

私も試しました:

どちらもコンパイルされていません。onyoneは何が問題なのか知っていますか?

(私はWindows XPを使用しています)

ありがとう。

0 投票する
2 に答える
1970 参照

c++ - クラス コンストラクターでこのポインターを CreateThread に渡すと、スレッド プロシージャーでの動作がおかしくなる

クラスの 1 つのコンストラクターで、CreateThread最後の操作として Windows 関数を呼び出します。すぐに実行するスレッドが作成され、クラスの this ポインターを として渡しますlpParameter

スレッド プロシージャで、渡されたパラメーターをクラスのポインターにキャストし、名前を付けますpThis

を呼び出したときに渡したポインタと同じメモリ位置pThisを指していることがわかります。ただし、アクセスされるメンバー変数を見ると、それらはすべて間違った値を持っています。thisCreateThreadpThis->...

this->member_variablethis ポインターが属するクラスの usedの値はpThis->member_variable、スレッドのプロシージャーに記述したときに取得する値と同じであると予想していました。

CreateThread別のメンバー関数 (コンストラクターではない)を呼び出すと、すべてが正しく動作します。

したがって、質問: CreateThreadC++ クラスのコンストラクター内から Windows 関数を呼び出すことは禁止されていますか? はいの場合、何が問題ですか?

説明:

1) オブジェクトが常に存在することを確認できます。オブジェクトは、プログラム全体が終了したときにのみスコープから外れます。既に述べたようにCreateThread、他のメンバー関数からの呼び出しは機能します。

2) 「有線」の誤字を修正しました。「変」だったはずです。申し訳ありません。

いくつかのコード:

「欠陥のある」部分を維持しながら、物事を最小限に減らすコードスニペットを投稿しようとしています。

CTimer基本クラスは、さまざまなプラットフォームでのビルドを可能にする単なる抽象基本クラスであるため、安全に無視できます。

m_hCompletitionEventここで、 への呼び出し後に有効であることがわかりますCreateEvent

ここで、 への呼び出しで問題が発生していますWaitForSingleObject。既に述べたように、クラスCTimerW32(現在pThis) のオブジェクトの this ポインターは、スレッドの作成時に this ポインターと同じ値を保持しています。ただし、ハンドルはpThis->m_hCompletitionEventランダム データのようです。CreateEventコンストラクターでの呼び出し後に観察される値ではありません。

0 投票する
3 に答える
12488 参照

c++ - CreateThread() に整数を渡すには?

int パラメータを CreateThread コールバック関数に渡す方法は? やってみる:

しかし、私は警告を受け取ります:

0 投票する
1 に答える
825 参照

multithreading - 複数のクライアントが接続している場合、Winsockスレッドサーバーはうまく機能しませんか?

接続するクライアントごとにスレッドを生成するサーバーがあります。次に、スレッドはクライアントへのデータの送受信を処理します。これが私のサーバーコードです:

そして、これが私のスレッド関数がどのように見えるかです:

問題:

だから私はサーバーとクライアントを起動します、例えばclient1(win7のコマンドプロンプトから)、すべてがうまくいきます。client1ターミナルで何かを入力すると、サーバーターミナルに出力されます。

次に、別のクライアントclient2を起動すると、サーバーに接続され、入力した内容がサーバーに表示されますが、client1で何かを入力しても、サーバーターミナルに表示されません。

したがって、基本的に、新しいクライアントを起動するたびに、そのクライアントのみがサーバーと通信でき、古いクライアントは通信できません!!! しかし、スレッドは各クライアントを処理し続けると思いましたか?それとも、Windowsのcmdプロンプトがスレッドセーフではないということですか?