1

これについて MSDN や Web でいくつか読んだことがありますが、以前よりも混乱しています。

私は vb.net Windows フォーム アプリケーションを使用しており、複数のスレッドを使用したいと考えています (複数のアパートメントではありません)。

これは、プログラムのエントリ ポイントに MTAThread 属性を設定する必要があるということですか?

はいを示しているように見えるソースもあれば、COM オブジェクトのために Windows フォーム アプリを STA にする必要があると言うソースもあれば、スレッドの作成時に MTA が自動的に設定されると言うソースもあれば、完全に混乱していないものもあります。

設定する必要がある場合は、アプリ フレームワークを無効にし、モジュールを作成してPublic Sub Main()?

4

1 に答える 1

1

呼び出し元のフォームがアクセスできるプロパティを使用して、クラスオブジェクトに配置することを検討TCPListenerします。このクラスには、フォームがリッスンしてデータをUIに渡すことができるイベントを含めることができます-delegates必要になる場合があります。タスクもクラス オブジェクトである可能性があり、タスクもクラス オブジェクトであるList(Of Task)ため、リッスンしている所有者が聞くイベントを発生させることができます。別のスレッドで処理されているタスクは、イベントが発生してもデリゲートが必要です。

于 2013-08-02T18:24:18.797 に答える