解决方案 »
- c#未将对象引用设置到对象的实例 很急 求各路大神帮忙啊
- C# 如何处理网页上复制的文字
- winform日历控件问题,解决了一百分全部送上 ====急
- c#和oracle 字符串问题
- 豪杰超级解霸的菜单是怎么做出来的,100分,很有挑战性
- WinForm DataGridView实现鼠标移上去当前行字体变颜色的案例,如下图,在线等
- wpf中类不能实例化。
- DevExpress GridControl 控件滚动条太窄了,怎么设置让他变宽一点吗?
- asp.net怎么选择数据库表、字段生成XML文档
- 循环插入数据,保留前面所有的0
- C# 使用sendkeys.sendwait()模拟键盘,输出汉字到dos下出错
- C#求解这个怎么解码=?UTF-8?Q?
哎 循环我用了 但是在listbox得到的不是我想要的样子。
先看一下这个
private void set_BoxText(string s)
{
ViewDataListBox.Items.Clear();
ViewDataListBox.Items.Add(s.ToString());
}
因为我是从targetPC上得到数据 然后在listbox显示出来,要是用循环在listbox显示的不是数组 而是一个数。然后我要是把ViewDataListBox.Items.Clear(); 去掉,那么在listbox上得到虽然是数组,但是数据会不停在listbox上增加,不容易观察了。
或者先调用clear,再循环调用add
你每添加一个之前都clear一次,当然就没有了
这是我在子线程里的代码
var array = new List<string>();
for (int i = 0; i < listbox.Items.Count; i++)
{
Double[] data1 = sc2.Signals[listbox.Items[i].ToString()].HostScopeSignalDataObject.GetData();
array.Add(Convert.ToString(data1.First()));
array2 = array.ToArray();
}
ViewDataListBox.Dispatcher.Invoke(Set_Text, new object[] { array2 });
delegate void f(string s)
那么改成
delegate void f(List<string> s)不就完了?
对应的,你的
set_BoxText(string s)
要改成
set_BoxText(List<string> s)
然后把foreach写到这个函数里面去
先clear,然后foreach
///线程函数
private void threadFunc()
{
string[] infos = new string[10];
for (int i = 0; i < 10; i++)
{
infos[i] = "mess:" + i.ToString();
}
ShowArray(infos);
} ///委托刷新
private void ShowArray(string[] info)
{
this.Invoke(new Action(() => {
listBox1.Items.Clear();
for (int i = 0; i < info.Length; i++)
{
listBox1.Items.Add(info[i]);
}
}));
}
///启动线程
System.Threading.Thread th = new System.Threading.Thread(new System.Threading.ThreadStart(threadFunc));
th.IsBackground = true;
th.Start();