APP下载

基于C#的多线程技术在连铸L2系统画面中的应用

2017-03-27石磊

科技创新与应用 2017年7期
关键词:线程控件程序

石磊

摘 要:文章主要介绍了利用C#多线程编程方法,满足连铸L2系统画面对于实时特性的要求,提高画面在处理多任务时的响应速度。为连铸L2系统画面开发提供一种新思想和技术方法。

关键词:C#;多线程;连铸L2系统画面

Abstract: This paper mainly introduces the use of multi-threaded C# programming method, meet the requirement of continuous casting L2 system windows form requirements for the real-time performance, improve the response speed of the windows form at multitasking. To provide a new thought and method for continuous casting L2 system windows form development.

Keywords: C#; multi-threaded; continuous casting L2 system windows form

1 概述

所谓连铸,即是将炼制成的钢水冷却铸造成具有一定形状的固体钢物质的制造工艺。连铸L2系统画面就是对整个连铸过程中采集到的设备信息,钢水信息进行可视化方式展示,分析和设定,使操作人员能够直观地观察数据,通过计算机的自动计算分析得出的结果对操作人员进行操作指导,从而科学方便的完成连铸整个过程。

由于连铸L2系统画面要实时对采集到的数据进行更新展示且反应速度一般在s级,并且具有多任务特性(即画面在完成一个耗时比较久的操作同时,还要进行其他的操作),所以在选择编程语言时不仅要考虑该编程语言生成的程序的运行速度,还要考虑其界面制作的简便性。除此之外,正常情况下都是两类操作系统(Linux和Windows)使用在如今的工业控制应用程序中。然而Windows应用程序在客户端上使用更普遍,在处理实时任务时性能优良,而且具有良好的图形界面。故而画面的操作系统选用Windows操作系统。在此基础上,从技术的角度来看,无论是在多任务编程,编译代码的运行速度还是界面编程的简便化等方面,C#语言都有其独特的特点,这些特性使得C#语言非常适合在工业实时性要求比较高的控制系统画面中使用。故用C#作为画面的编程语言。

2 连铸L2系统画面功能分析

连铸L2系统画面主要具有以下三个功能:(1)定周期对L1采集到的数据进行收集并在画面端展示出来以便操作人员查看(周期一般在10秒左右);(2)在收集到L1的某些特殊数据后,启动后台进程进行数据的逻辑处理和分析,然后在画面上显示,用于指导操作人员的生产(这些操作中有些是需要耗时很久但操作人员不急于查看结果的,但这些操作却不能影响操作人员接下来进行画面上其他的操作);(3)操作人员通过L2系统画面完成与L3系统,L1系统的相互数据接收和发送。(操作人员有时会需要同时按多个按钮完成多项操作,不能按完一个按钮等待程序执行完成后再按其他按钮)

从以上的功能分析可以看出,连铸L2系统画面在展示数据的同时,还要进行其他的操作,并且这些操作要具备并行处理能力,即在相当短的时间内进行多个操作。这时就要求画面具有多任务处理的能力,为了达到这一要求,我们引进多线程技术。

3 多线程技术原理

在介绍多线程技术之前,我们先弄清楚几个概念。(1)什么是进程?简单的说,一个在操作系统中运行的程序,它就是一个进程,进程除了包括运行中的程序(代码)本身外,还包括该程序所使用到的内存空间和操作系统内的系统资源。一个进程通常只有一个主线程。(2)什么是线程?线程就是程序中的一个执行流,对于每个线程来说,代码都是共用的,也就是每个线程都可以执行同样的代码函数,只是线程与线程之间使用的寄存器(栈指针、程序计数器等)不同。在弄清楚这两个概念之后,多线程技术也就呼之欲出了,多线程技术就是指在程序中创建多个执行不同任务的线程,并使它们能并行执行,以达到程序具备在同一个时间周期内进行多任务处理能力的技术。

C#多线程技术:

C#是在Windows操作系统上运行的程序语言,C#多线程技术,顾名思义就是用C#这种程序语言去实现多线程技术。为此微软为了程序员能方便自如地运用多线程技术开发软件,将多线程的相关底层封装在了名叫System.Threading的命名空間中,所有线程通过CLI来进行统一管理。这样做为程序的开发人员节省了宝贵的开发时间和精力,不用去编写底层的控制管理代码,而只要完成程序逻辑部分代码就可以了。C#多线程技术提倡两种主要的多线程开发方法,本文将使用其中的方法,演示C#多线程技术的开发方式。

4 C#多线程技术的应用

在宝钢二炼钢5,6号连铸机L2计算机系统改造项目的画面中,主要面临两个问题。(1)画面自动刷新数据,满足操作工实时监控连铸L1上传给L2的数据信息功能;(2)操作工对画面操作后,所有数据的处理,在后台完成,不影响画面的响应,使操作工能接着进行其他的画面操作。项目中已经通过使用C#多线程技术解决了以上两个问题,下面将介绍如何使用该技术。(本文将附部分项目代码)。

4.1 C#时间控件Timer

Timer控件是C#编程语言中一个典型的多线程应用控件。该控件是定周期的,并且具有跨线程调用特性。完全可以满足该项目画面中关于定周期更新展示数据的要求。该控件的使用方法如下:

从实例中可以看出,该控件的使用方法非常简便,并且是微软自带的控件,封装使用效果非常好,无BUG。不但减轻了程序开发人员的开发负担,还使得程序变得简便易读。

4.2 自定义多线程

自定义多线程,顾名思义就是自己定义多个线程,每个线程完成某一项子任务,使子任务具备并行运行的可能。该方法的使用主要解决画面在执行多个子任务而使得画面的响应速度受到影响的问题。比如说,在该项目中点击完命令要求,实绩发送等多个按钮后,还要进行其他画面操作。这时,不用多线程会使得后台在处理这些画面要求的时候影响画面本身,操作人员无法接着进行其他的画面修改更新等操作而是要等到后台处理完毕后才能处理其他操作,而使用多线程技术则可以在后台处理的同时,画面进行其他操作。自定义多线程使用方法如下:

该方法是C#多线程技术应用的精髓所在,该方法的使用灵活,简便,可以很好的满足操作人员对连铸L2画面进行多任务处理的各种要求,并同时提高画面的响应速度,更好的保证操作人员对连铸生产的实时控制。

5 结束语

从多线程应用程序的运行原理来看,多线程应用程序被分为几个能同时执行的子线程后,能够在同一个时间周期内完成各种各样的任务。有效解决了在单线程应用程序中多任务会产生任务阻塞而无法同时完成多个任务的问题。同时,由于多线程具有并发处理能力,使应用程序的快速响应特性得以增强。

从多个连铸项目L2系统画面使用C#多线程技术的效果上来看,多线程技术的使用满足了连铸L2系统对于画面快速响应特性和实时特性的要求,并且使用該技术的系统运行稳定,从未出现问题。在已经实施的项目中获得了用户的一致好评,尤其是下列几个方面在工业控制行业二级系统画面中都具有一定的参考价值。

(1)针对具有多任务特性的工业控制系统画面来说,将多线程技术应用于其中是一个不错的选择。

(2)用户界面可以做得更加人性化,比如用户点击了某一个按钮去执行某一项任务,这时可以弹出一个任务进度条来显示任务完成的进度。

(3)从单纯的技术角度来看,可视化的C#语言具有清爽,易编程等特点。

参考文献

[1]孙永强,等.Visual C#.NET入门与提高[M].北京:清华大学出版社,2002.

[2]特罗尔森(Andrew,troelsen).C#与.NET3.5高级程序设计(第4版)[M].人民邮电出版社,2009.

[3]蒋慎言.连铸及炉外精炼自动化技术[M].冶金工业出版社,2006.

猜你喜欢

线程控件程序
使用“填表单”微信小程序 统计信息很方便
基于.net的用户定义验证控件的应用分析
给Windows添加程序快速切换栏
简化化学平衡移动教学程序探索
“程序猿”的生活什么样
英国与欧盟正式启动“离婚”程序程序
Java多线程产生安全问题及对策分析
采用ScheduledThreadPoolExecutor执行定时重试任务时内存溢出的分析及解决
利用VF6.0的Timer控件实现动画效果
Spreadsheet控件在Delphi数据库系统中的编程与应用