我正在制作一个运行 2 个线程的 C# 程序。主 UI 线程和我自己制作的单独网络线程。
我发现,如果我需要从网络线程更改 UI 中的某些内容,我将需要调用一个 deligate 方法,它工作得很好:
// 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'”(当然用“int”代替“void”,并且在listbox1.begininvoke之前有一个“int a =”)。我用谷歌搜索了很多,但我对 C# 很陌生,所以我真的迷路了。
任何帮助将不胜感激