【发布时间】:2016-01-06 17:05:38
【问题描述】:
所以我已经有一段时间了。
到达流的末尾程序会冻结,直到有新的输入才再次冻结。
使用线程我得到了我无法从该线程访问文本框的异常。 backgroundworker 只是什么都不做。
我真的有点迷路了
我的代码有点像这样
在管理 tcp 流的类中: 字符串读取消息() { 返回 inputStream.ReadLine() }
在我的 windows 窗体类中,我需要以某种方式不断使用输入流更新文本框而不冻结 ui
【问题讨论】:
-
没有人可以帮助您解决这个问题,因为我们不知道您在说什么。给我们看一些代码,描述你想要做什么,问一个问题......
-
假设您使用的是 WinForms,如果您想从创建 UI 组件的线程以外的线程更改 UI 组件的状态,则需要使用 Invoke(Delegate 方法)。您可以使用 InvokeRequired 来检查是否需要使用 Invoke()
-
啊该死的格式删除了我的代码
-
所以我得到了我的方法“irc.readMessage()”,它从 tcp-streamreader 返回一个字符串。我在我的 WindowsForm 类中得到了我的线程“t”我将如何使用这个调用将 readmessage 方法中的文本附加到我的文本框?
-
这还不够,但使用类似这样的东西 - Invoke(new MethodInvoker(() => action()));操作是您尝试更改文本框中文本的任何代码。
标签: c# multithreading tcp backgroundworker streamreader