Windows XP 嵌入式版本上出现 System.IO.IOException 的原因是什么?

2023-12-04

我正在 Windows XP 嵌入版本上运行 .Net 3.5 应用程序。该应用程序通过串行 (COM) 端口写入和读取一些数据。该应用程序在我的笔记本电脑(Windows XP Professional)上运行良好,但在嵌入式 Windows XP 上运行不佳。我不断收到此错误:

System.IO.IOException:由于线程退出或应用程序请求,I/O 操作已中止。

可能是什么原因造成的?

一些附加信息:要阅读,我正在使用ReadExisting并不是Readline。另外,在阅读之前,我还要确保端口也已打开。

System.IO.IOException: The I/O operation has been aborted because of either a thread exit or an application request.
at System.IO.Ports.SerialStream.EndRead(IAsyncResult asyncResult)
at System.IO.Ports.SerialStream.Read(Byte[] array, Int32 offset, Int32 count, Int32 timeout)
at System.IO.Ports.SerialStream.Read(Byte[] array, Int32 offset, Int32 count)
at System.IO.Ports.SerialPort.ReadExisting()
at ScalesApp.Scales.handleDataReceived(Object sender, SerialDataReceivedEventArgs e)
at System.IO.Ports.SerialPort.CatchReceivedEvents(Object src, SerialDataReceivedEventArgs e)
at System.IO.Ports.SerialStream.EventLoopRunner.CallReceiveEvents(Object state)
at System.Threading._ThreadPoolWaitCallback.WaitCallback_Context(Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading._ThreadPoolWaitCallback.PerformWaitCallbackInternal(_ThreadPoolWaitCallback tpWaitCallBack)
at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback(Object state)

问题在于 SetCommState 的 DCB 中启用了 fAbortOnError,这解释了 SerialPort 对象抛出的大多数 IOException。某些 PC/手持设备具有默认启用错误中止标志的 UART - 因此串行端口的 init 例程必须清除它(微软忽略了这一点)。 SerialPort 对象在设计时并未考虑启用 fAbortOnError。

我最近写了一篇很长的文章来更详细地解释这一点(see this如果你有兴趣)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Windows XP 嵌入式版本上出现 System.IO.IOException 的原因是什么? 的相关文章

  • 如何将隐藏字段从一个页面传递到另一页面?

    我有一个 Net 类库 我想从一次代码隐藏页面传递一个隐藏变量 并在另一个代码隐藏页面中获取它 请注意 我没有任何可以使用表单标签和 get post 方法的设计页面 aspx 页面 我们应该怎么做 注意 我想使用隐藏字段将值从一页传递到另
  • 为 Visual Studio 2013 编译 Tesseract

    我正在尝试使用tesseract在 Visual Studio 2013 中 我在链接器 gt 输入 不是 libtesseract302 static lib 中使用 libtesseract302 lib 一切都正常 并且已编译并运行
  • 如何将 #ifdef DEBUG 添加到 Xcode?

    我的项目中有一些代码永远不应该在发布版本中使用 但在测试时很有用 我想做这样的事情 ifdef DEBUG Run my debugging only code endif 在 Xcode 4 中哪里添加 DEBUG 设置 我尝试将其放入
  • 将 System.Windows.Input.KeyEventArgs 键转换为 char

    我需要将事件参数作为char 但是当我尝试转换 Key 枚举时 我得到的字母和符号与传入的字母和符号完全不同 如何正确地将密钥转换为字符 这是我尝试过的 ObserveKeyStroke this new ObervableKeyStrok
  • 在 C# 中循环遍历文件文件夹的最简单方法是什么?

    我尝试编写一个程序 使用包含相关文件路径的配置文件来导航本地文件系统 我的问题是 在 C 中执行文件 I O 这将是从桌面应用程序到服务器并返回 和文件系统导航时使用的最佳实践是什么 我知道如何谷歌 并且找到了几种解决方案 但我想知道各种功
  • 关于在 Windows 上使用 WiFi Direct Api?

    我目前正在开发一个应用程序 我需要在其中创建链接 阅读 无线网络连接 在桌面应用程序 在 Windows 10 上 和平板电脑 Android 但无关紧要 之间 工作流程 按钮 gt 如果需要提升权限 gt 创建类似托管网络的 WiFi 网
  • 如何在 Linq 中获得左外连接?

    我的数据库中有两个表 如下所示 顾客 C ID city 1 Dhaka 2 New york 3 London 个人信息 P ID C ID Field value 1 1 First Name Nasir 2 1 Last Name U
  • 未经许可更改内存值

    我有一个二维数组 当我第一次打印数组的数据时 日期打印正确 但其他时候 array last i 的数据从 i 0 到 last 1 显然是一个逻辑错误 但我不明白原因 因为我复制并粘贴了 for 语句 那么 C 更改数据吗 I use g
  • PlaySound 可在 Visual Studio 中运行,但不能在独立 exe 中运行

    我正在尝试使用 Visual Studio 在 C 中播放 wav 文件 我将文件 my wav 放入项目目录中并使用代码 PlaySound TEXT my wav NULL SND FILENAME SND SYNC 我按下播放按钮 或
  • 批量更新 SQL Server C#

    我有一个 270k 行的数据库 带有主键mid和一个名为value 我有一个包含中值和值的文本文件 现在我想更新表格 以便将每个值分配给正确的中间值 我当前的方法是从 C 读取文本文件 并为我读取的每一行更新表中的一行 必须有更快的方法来做
  • 将 log4net 与 Autofac 结合使用

    我正在尝试将 log4net 与 Autofac 一起使用 我粘贴了这段代码http autofac readthedocs org en latest examples log4net html http autofac readthed
  • 私有模板函数

    我有一堂课 C h class C private template
  • HttpWebRequest 在第二次调用时超时

    为什么以下代码在第二次 及后续 运行时超时 代码挂在 using Stream objStream request GetResponse GetResponseStream 然后引发 WebException 表示请求已超时 我已经尝试过
  • 有人可以提供一个使用 Amazon Web Services 的 itemsearch 的 C# 示例吗

    我正在尝试使用 Amazon Web Services 查询艺术家和标题信息并接收回专辑封面 使用 C 我找不到任何与此接近的示例 所有在线示例都已过时 并且不适用于 AWS 的较新版本 有一个开源项目CodePlex http www c
  • 如何对 Web Api 操作进行后调用?

    我创建了一个 Web API 操作 如下所示 HttpPost public void Load string siteName string providerName UserDetails userDetails implementat
  • C++ 密码屏蔽

    我正在编写一个代码来接收密码输入 下面是我的代码 程序运行良好 但问题是除了数字和字母字符之外的其他键也被读取 例如删除 插入等 我知道如何避免它吗 特q string pw char c while c 13 Loop until Ent
  • Server.MapPath - 给定的物理路径,预期的虚拟路径

    我正在使用这行代码 var files Directory GetFiles Server MapPath E ftproot sales 在文件夹中查找文件 但是我收到错误消息说 给定物理路径但虚拟路径 预期的 我对在 C 中使用 Sys
  • 将自定义 ValueProviderFactories 添加到 ASP.NET MVC3?

    我试图尝试将 Protobuf ValueProviderFactory 添加到 MVC3 以便我可以选择 MIME 类型并将原始数据反序列化为操作参数的对象 我还可以使用它来更改默认的 Json 序列化器 看着JsonValueProvi
  • 当另一个线程可能设置共享布尔标志(最多一次)时,是否可以读取共享布尔标志而不锁定它?

    我希望我的线程能够更优雅地关闭 因此我尝试实现一个简单的信号机制 我不认为我想要一个完全事件驱动的线程 所以我有一个工作人员有一种方法可以使用关键部分优雅地停止它Monitor 相当于C lock我相信 绘图线程 h class Drawi
  • 在客户端系统中安装后桌面应用程序无法打开

    我目前正在使用 Visual Studio 2017 和 4 6 1 net 框架 我为桌面应用程序创建了安装文件 安装程序在我的系统中完美安装并运行 问题是安装程序在其他计算机上成功安装 但应用程序无法打开 edit 在客户端系统中下载了

随机推荐

  • 有没有办法在运行 64 位的 IE10 中默认设置 Quirks 模式

    我想知道是否有办法让我的 IE10 浏览器在打开时自动设置为 Quirks 模式 我使用的是 Windows 8 64 位 我正在访问一个需要处于怪异模式的网站 当我打开浏览器时 我仍然需要将其更改为怪异模式才能正确访问该网站 当我重新启动
  • 如何在 Android 中截取视频的屏幕截图

    我正在播放一个视频 在某些时候 我需要暂停视频 进行捕获 然后在绘画活动中使用该图像来修改它 问题是 如果我尝试保存视频 图片将是黑色的 尝试过setDrawingCacheEnabled true 可以对视频进行截图吗 你有没有尝试过Th
  • 我怎样才能选择一个html元素,无论它在selenium中的哪个框架中?

    我正在尝试选择一个驻留在 iframe 内并且可能驻留在其他 iframe 中的元素 是否可以在 python selenium 中的某些 子 iframe 中选择一个元素 而无需先选择 iframe 有没有办法以某种方式 循环 每个 if
  • 如何更改Python循环中的for循环迭代器变量?

    我想知道是否可以在 for 循环中更改迭代器的值 例如 我想编写一个程序来通过以下方式计算数字的素因数 def primeFactors number for i in range 2 number 1 if number i 0 prin
  • 处理多个 SIGCHLD

    在运行 Linux 2 6 35 的系统中 我的程序创建许多子进程并监视它们 如果子进程死亡 我会进行一些清理并再次生成该进程 我用signalfd 得到SIGCHLD我的进程中发出信号 signalfd异步使用libevent 当对非实时
  • matheca中的包导入问题

    在mathematica中 我使用的是mma 5 0 猜很老 如果我输入以下一行 Needs Graphics Master Animate Plot Sin n x x 0 2 Pi Axes gt False n 1 6 1 然后我收到
  • Dockerfile 无法构建

    直到几天前Dockerfile工作正常 当我今天尝试再次构建它时 它在终端中给出以下错误 我尝试使用多个 docker 基础映像 但仍然给出相同的错误 谁能帮我这个 我不认为我错过了什么 如果我错过了 它应该早先给我错误 但为什么现在呢 E
  • TempData 在 ASP.NET MVC 2 中读取后保留

    在 ASP NET MVC 2 中 TempData值将一直保留到会话结束或被读取为止 在里面微软的话 TempData 的值一直持续到 它被读取或直到会话时间 出去 以这种方式持久化 TempData 启用重定向等场景 因为 TempDa
  • pandas groupby 到嵌套 json

    我经常使用 pandas groupby 来生成堆叠表 但后来我经常想将生成的嵌套关系输出到 json 有什么方法可以从它生成的堆叠表中提取嵌套的 json 文件吗 假设我有一个像这样的 df year office candidate a
  • 对空集/NA 的 NA 集求和而不是 0?

    The 求和函数如果应用于空集则返回 0 如果将其应用于一组 NA 值 是否有一种简单的方法可以使其返回 NA 这里有一个borrowed例子 test lt data frame name rep c A B C each 4 var1
  • 如何获取 ASP.NET MVC 中模型状态错误的集合?

    如何获取视图中的错误集合 我不想使用 Html Helper 验证摘要或验证消息 相反 我想检查错误以及是否有错误以特定格式显示它们 另外 在输入控件上 我想检查特定的属性错误并向输入添加一个类 附 我正在使用 Spark View Eng
  • Python速度测试-时差-毫秒

    在 Python 中比较 2 次以加速测试一段代码的正确方法是什么 我尝试阅读 API 文档 我不确定我是否理解 timedelta 的事情 到目前为止我有这个代码 from datetime import datetime tstart
  • .net XmlSerializer,忽略基类属性

    假设我们有一个从基类 System Windows Controls 派生的类 SerializedLabel XmlRoot SerializableLabel public class SerializableLabel Label p
  • 如何使用 getch() ncurses 获取 Ctrl、Shift 或 Alt?

    How to get Ctrl Shift or Alt with getch ncurses I cannot get it work to get Ctrl Shift or Alt with getch using ncurses D
  • Backbone.js 在 POST 请求上获取数据

    我是backbone js 的新手 我正在尝试使用我的服务发布数据 它会返回我的数据 我的服务是 http 192 168 1 3 8080 app search candidate它将输入作为 skills c java 它会将用户列表返
  • 黑客 DropDownList 值

    我有一个 DropDownList 我试图防止它被用作攻击媒介 我是否可以假设用户无法实际更改 DDL 的值并回发到服务器 目前 如果我尝试在提交后更改数据包 则会抛出以下 ASP NET 错误消息 For security purpose
  • 在c#中将点移动到另一个点

    我想将二维搜索空间中的某个点 a 移动到具有一定步长 config StepSize 0 03 的另一个点 b Point a agent Location Point b agentToMoveToward Location import
  • 如何从 HTML 中删除“不可见空间”[重复]

    这个问题在这里已经有答案了 可能的重复 内联块列表项之间的空格 我有一个JSFiddle 演示我的 html 代码 这是这里的代码 span style display inline Hello Wo span span style dis
  • 将 var 或 #' 应用于 Clojure 中的函数列表

    我正在尝试读取 Clojure 中函数集合的元数据 但 var 或 reader 特殊形式不起作用 除非它们直接处理符号 this works var my fn this doesn t defn val it x var x val i
  • Windows XP 嵌入式版本上出现 System.IO.IOException 的原因是什么?

    我正在 Windows XP 嵌入版本上运行 Net 3 5 应用程序 该应用程序通过串行 COM 端口写入和读取一些数据 该应用程序在我的笔记本电脑 Windows XP Professional 上运行良好 但在嵌入式 Windows