2 つのスレッドを実行する C# プログラムを作成しています。メインの UI スレッドと、別のネットワーク スレッドを自分で作成します。
ネットワーク スレッドから UI の何かを変更する必要がある場合は、デリゲート メソッドを呼び出す必要があることがわかりました。これは問題なく機能します。
// Declared as a global variable
public delegate void ListBoxFirst();
//Then call this from the network thread
listBox1.BeginInvoke(new ListBoxFirst(InitListBox));
//Which points to this
public void InitListBox() {
listBox1.SelectedIndex = 0;
}
ここで、ネットワーク スレッドから UI 値 (listbox.selectedindex) を読み取れるようにする必要がありますが、同じ方法で試してみると、「型 'system.iasyncresult' を 'int' に暗黙的に変換できません」というエラーが表示されます (もちろん、「void」の代わりに「int」を使用し、listbox1.begininvoke の前に「int a =」を使用します)。私はたくさんグーグルで検索しましたが、C# にはかなり慣れていないので、本当に迷ってしまいます。
どんな助けでも大歓迎です