1

C# でサーバーを作成しようとしていますが、スレッドの委任と通信に関する基本的な質問があります。

    using System.Windows.Forms;

// main thread..
callbackform = new Form();
callbackform.createControl();
int dummy = callbackform.Handle.ToInt32();

// here I create a new thread to connect to a server and handle messages from server

// main thread loops indefinitely
Application.run(new ApplicationContext());

現在、フォームは ISynchronizeInvoke インターフェイスを実装しています。メイン STA スレッドでメソッドを同期的または非同期的に実行したい場合、callbackform.InvokeRequired/BeginInvoke/EndInvoke/Invoke(...) 関数を使用できますか?

フォーム/コントロール/ハンドル オブジェクトは新しいスレッドを作成しますか? その場合、それらが管理するスレッドはメイン スレッドと同じではなく、フォームに委任したアクションは実際にはメイン STA スレッドで実行されませんか?

これは正しい理解ですか、それともここで基本的な何かが欠けていますか? C# を使用して非 GUI サーバーを作成し始めています。

4

0 に答える 0