【发布时间】:2018-05-24 00:17:07
【问题描述】:
works here ----- crashes here ----- 所以我正在制作这个基于消息队列的服务器客户端聊天系统,在客户端,我有一个接收消息的线程。我的列表框的名称是'displaymsg'
这是我的线程池方法
public void getmsg(object ob)
{
string msg = "";
while (true)
{
msg = mRecieve.GetMessages();
displaymsg.Items.Add(msg);
}
}
但程序在到达 displaymsg.Items.Add(msg) 部分时崩溃。
为了检查它是否到达那里并且它是否工作正常,我用MessageBox.Show(msg) 替换它,它工作正常,我在一个弹出框中收到我从另一端发送的每条消息。我是 wpf 的新手,所以现在有点迷路了......请帮忙!
【问题讨论】:
-
在非工作情况下收到什么消息?我怀疑这是由于尝试从错误的线程访问控件,但没有错误消息,我无法确定。
-
它不显示任何错误消息。只是崩溃说“客户端已停止工作,Windows 正在报告此问题”
-
@Shrey 你的程序中的while循环真的是这样写的吗? while(true) 无限继续。如果您要创建无限数量的要添加的项目,它将会崩溃,因为您正在消耗所有的计算机资源。
-
其实为了让它先工作,我根本没有循环。我只是做字符串味精=“”; displaymsg.Items.Add("这里有东西");当我使用 displaymsg 时它会崩溃,但当我使用 messagebox 时它会工作。
-
是的,当然@Jamin。这是链接stackoverflow.com/questions/9732709/…