首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >STA线程抛出InvalidOperationException

STA线程抛出InvalidOperationException
EN

Stack Overflow用户
提问于 2013-09-03 10:16:18
回答 1查看 866关注 0票数 0

情况是这样的:

我在我的应用程序中有一个实现HTTP服务器的类,所以我可以接受请求。此服务器的目标是使用发送到应用程序的XML刷新图表。

我编写的XML解析器使用了我创建的UserControl,名为NewMeshNode,它在同一个对象中有一些属性和一对图像。当解析器到达创建一个新的NewMeshNode对象时,问题就出现了。

由于NewMeshNode对象有图形部分,所以我使用委托,并将http服务器线程单元状态更改为STA。

在这里,我初始化本地http服务器:

App.localHttpServer =新MyHttpServer(8080);App.localHttpServerThread =新线程(新ThreadStart(App.localHttpServer.listen));

这就是我要求解析器用我收到的XML创建列表的方式:

公共委托ArrayList delListString(string s);。。delListString del =新delListString(App.parser.GetParameters);App.nodeInfo =delListString令牌;

这是解析器的一部分,我在其中创建了一个新的NewMeshNode对象来使用它:

公共ArrayList GetParameters(string xml) { ArrayList parameters=new ArrayList();int sensorCount = 0;MemoryStream ms =新MemoryStream(SensorCount);ms.Write(Encoding.UTF8.GetBytes(xml),0,Encoding.UTF8.GetBytes(xml).Length);ms.Position = 0;byte[] byteArray = ms.ToArray();string resul = Encoding.UTF8.GetString( byteArray );MemoryStream rms =新MemoryStream(byteArray);XmlReaderSettings设置=新XmlReaderSettings();settings.IgnoreComments=true;settings.IgnoreWhitespace=true;XmlReader xmlr = XmlReader.Create(rms,byteArray);xmlr.Read();string xmlType = xmlr.Name;string currentElement=“;string secondaryElement =”;NewMeshNode node = new NewMeshNode();。。

这是NewMeshNode类:

公共部分类NewMeshNode : UserControl { 公共字符串名称= "";公共字符串mac = "";公共字符串地址= "";公共字符串状态= "";公共int pipeLive = 0;公共双xOnGraph = 0.0;公共双yOnGraph = 0.0;公共字符串pointsTo = "";公共ArrayList传感器=新ArrayList();公共ArrayList oldAddress =新ArrayList();public NewMeshNode() { InitializeComponent();}}

VS总是在调试器进入构造函数时抛出一个InvalidOperation异常,并带有消息:“调用线程必须是STA,因为许多UI组件都需要这样做。”

我做错了什么?

提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-04 11:39:17

由于其主要原因是线程应该是STA,设置线程并不能解决您的问题,所以您可以尝试本文中提到的一些技巧。比如干净的构建你的解决方案,可视化的工作室设置等等。http://social.msdn.microsoft.com/Forums/vstudio/en-US/d1e17dc5-ea88-453b-b87f-7154e6c6c75a/the-calling-thread-must-be-sta-because-many-ui-components-require-this

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18589688

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档