私の質問が包括的すぎる場合はお詫び申し上げます。
Visual C++ と Qt の経験があり、これらの環境でこれを行う方法を知っていますが、チームのために CLR アプリケーションを作成する必要があります。
次のようなCLRアプリケーションがあります。
label 要素を含む CLR アプリケーション。(アカウントが新しくなったため、画像を投稿できません)。
私の要件:
- 「Status here」ラベルを変更して単純なデータ文字列を表示するスレッドを作成したいと考えています。
- その理由は次のとおりです。名前付きパイプを介してこのアプリケーションにデータを送信する別の C++ ベースのクライアント アプリケーションがあります。
- 私の目標は、クライアントからの接続と読み取りをブロックし、このフォームの表形式でデータを表示する、この GUI フォーム用の別のスレッドを作成することです。
- 私がやりたいことは、パイプからデータを受け取った後にフォーム内のアイテムを変更する方法を知ることです
CLR スレッド プールを使用するか、次のように System::Threading を使用してスレッドを作成する必要があります。
ThreadStart^ pTOperation = gcnew ThreadStart(startPipe); Thread^ pipeThread = gcnew Thread(pTOperation); pipeThread->Start();
ここで、startPipe 操作は、サーバー パイプの作成、クライアントとの接続、読み取りの実行、および GUI 要素の変更の機能を実行します。CLRには、Qtのように別のスレッドからメインフォーム要素を変更するための制限がありますか? (そのためにシグナル/スロットシステムを実装する必要がありました)。
私の考え:フォームラベルへのポインタであるスレッド関数に引数を渡し、スレッド関数内のプロパティを変更できますか?