我的编程空间,编程开发者的网络收藏夹
学习永远不晚

C# Windows CE特点之实时性的示例分析

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

C# Windows CE特点之实时性的示例分析

这篇文章主要为大家展示了“C# Windows CE特点之实时性的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“C# Windows CE特点之实时性的示例分析”这篇文章吧。

C# Windows CE特点之实时性

C# Windows CE的***一条设计目标是要支持实时系统的开发。在嵌入式编程中,实时性就是指在指定时间内完成指定任务的能力,这些任务可能是计算某个值,记录某次输入,或者是向某个外部设备发送一条命令。很多系统要求无论负荷有多么重,系统都应该能够连续可靠地执行这样的一个任务(或者是一些任务)。

从C# Windows CE 3.0开始,C# Windows CE开发团队就加入了一系列特性以支持实时系统的开发。其中包括支持256个线程优先级(C# Windows CE一直都支持多线程编程)和嵌套的中断请求。C# Windows CE对实时性的支持在C# Windows CE Platform Builder的文档中定义如下:

◆保证高优先级线程安排的上限,但仅对所有排队线程中优先级***的线程有效。

◆在执行高优先级中断服务程序(ISR,interrupt service routine)时保证延时的上限。在内核中专门设置了一些空间用于临时关闭中断服务。

◆确保对调度程序的控制,使其能顺利地安排线程。

实时系统可以根据需求分为两种,一种要求硬实时,另一种则要求软实时。软实时需求的系统在没有严重后果的情况下允许出现一些延时,而硬实时需求的系统中则不能出现任何一点延时。

硬实时需求系统的例子如工厂里控制机器手臂动作的系统。有时也许必须移开这个手臂才能让生产线继续向前流动,或者才能让其它的机器进入生产线开展工作,但是如果没有及时移开它,结果可能会导致这个手臂、产品或者部分生产线被破坏。(我们假设这样的事故会使整条生产线停下来,造成大量时间和成本的损失。)

尽管C# Windows CE提供很好的实时性支持,但.NET精简框架却不是一个理想的构建实时组件的编程接口。这是因为运行时引擎可能会出现各种时间间隔不等的延时。例如,在使用运行时编译执行(JIT,just-in-time)编译器(本章后面会有介绍)装载代码和将代码编译为本地机器代码时,都会出现延时。

托管代码与非托管代码

.NET精简框架代码有时也可作为托管代码,但对应用程序程序员来说,它最重要的特性是由运行时来管理数据,特别是已清除的数据。尽管代码也可以被托管,但是必须确保其中没有错误的内存指针。本书第3章将重点介绍这个问题。

相反,Windows API代码有时也可作为非托管代码。这是一种以.NET为中心处理问题的方法,尽管我们有时使用如本地代码和Win32代码之类不同的术语来指代它。

C# Windows CE遇到的问题,另外,当垃圾回收器工作的时候也可能出现延时,因为这时所有在托管代码中运行的线程都被冻结了,然而非托管代码则不会。因此,.NET精简框架托管代码可以支持实时线程16,但是多数情况下实时线程是通过调用Win32的DLL在非托管代码中实现的。当然,以上只是一些基本原则,如果是一个很快的CPU,系统负荷也很轻,在托管代码中运行的线程也能提供足够快的响应以满足这个系统实时性支持的要求。对于定时和性能的关系,我们需要“三思而后行”(measure twice and cut once),测量所需性能的次数往往跟错失实时性底限的程度成正比。

以上是“C# Windows CE特点之实时性的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

C# Windows CE特点之实时性的示例分析

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

C# Windows CE特点之实时性的示例分析

这篇文章主要为大家展示了“C# Windows CE特点之实时性的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“C# Windows CE特点之实时性的示例分析”这篇文章吧。C# Win
2023-06-18

C# Windows CE特点之兼容性的示例分析

小编给大家分享一下C# Windows CE特点之兼容性的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!C# Windows CE特点之兼容性的设计思路:
2023-06-17

C# Windows CE特点之模块化的示例分析

小编给大家分享一下C# Windows CE特点之模块化的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!C# Windows CE特点之模块化是什么呢?C# Windows CE是模块化的,这对可配置的操作系统来说
2023-06-17

C#中属性和特性的示例分析

这篇文章主要介绍C#中属性和特性的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!首先要说的是,可能一些刚接触C#的朋友常常容易把属性(Property)跟特性(Attribute)弄混淆,其实这是两种不同的东
2023-06-17

JDK7新特性之遍历文件树的示例分析

这篇文章主要介绍JDK7新特性之遍历文件树的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!有时需要递归遍历一个文件树,比如查找一个文件夹内符合条件的文件,查找某一天创建的文件……。jdk7 nio包提供一个新
2023-06-17

PHP关键特性之命名空间的示例分析

这篇文章主要介绍PHP关键特性之命名空间的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!你知道命名空间主要是为了解决代码中类和函数可能存在冲突的问题的吗?而这个特性其他语言一早就有,PHP则是姗姗来迟,它的出
2023-06-15

C++实现LeetCode之区间的示例分析

这篇文章将为大家详细讲解有关C++实现LeetCode之区间的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。[LeetCode] 228.Summary Ranges 总结区间Given a so
2023-06-20

C#调用Windows API之参数类型的示例分析

小编给大家分享一下C#调用Windows API之参数类型的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!C#调用Windows API之参数类型1、数值
2023-06-18

ES9新特性之异步遍历Async iteration的示例分析

这篇文章主要介绍了ES9新特性之异步遍历Async iteration的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。异步遍历在讲解异步遍历之前,我们先回想一下ES6
2023-06-15

C++编译器之间不同性能的示例分析

这期内容当中小编将会给大家带来有关C++编译器之间不同性能的示例分析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。我主要从事windows下的编程,所以我一般用vc编译,毕竟是当今软件霸主的产品,性能和功
2023-06-17

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录