0

私の質問が包括的すぎる場合はお詫び申し上げます。

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のように別のスレッドからメインフォーム要素を変更するための制限がありますか? (そのためにシグナル/スロットシステムを実装する必要がありました)。

私の考え:フォームラベルへのポインタであるスレッド関数に引数を渡し、スレッド関数内のプロパティを変更できますか?

4

0 に答える 0