石磊
摘 要:文章主要介紹了利用C#多線程編程方法,滿足連鑄L2系統(tǒng)畫面對于實時特性的要求,提高畫面在處理多任務(wù)時的響應(yīng)速度。為連鑄L2系統(tǒng)畫面開發(fā)提供一種新思想和技術(shù)方法。
關(guān)鍵詞:C#;多線程;連鑄L2系統(tǒng)畫面
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 概述
所謂連鑄,即是將煉制成的鋼水冷卻鑄造成具有一定形狀的固體鋼物質(zhì)的制造工藝。連鑄L2系統(tǒng)畫面就是對整個連鑄過程中采集到的設(shè)備信息,鋼水信息進行可視化方式展示,分析和設(shè)定,使操作人員能夠直觀地觀察數(shù)據(jù),通過計算機的自動計算分析得出的結(jié)果對操作人員進行操作指導(dǎo),從而科學(xué)方便的完成連鑄整個過程。
由于連鑄L2系統(tǒng)畫面要實時對采集到的數(shù)據(jù)進行更新展示且反應(yīng)速度一般在s級,并且具有多任務(wù)特性(即畫面在完成一個耗時比較久的操作同時,還要進行其他的操作),所以在選擇編程語言時不僅要考慮該編程語言生成的程序的運行速度,還要考慮其界面制作的簡便性。除此之外,正常情況下都是兩類操作系統(tǒng)(Linux和Windows)使用在如今的工業(yè)控制應(yīng)用程序中。然而Windows應(yīng)用程序在客戶端上使用更普遍,在處理實時任務(wù)時性能優(yōu)良,而且具有良好的圖形界面。故而畫面的操作系統(tǒng)選用Windows操作系統(tǒng)。在此基礎(chǔ)上,從技術(shù)的角度來看,無論是在多任務(wù)編程,編譯代碼的運行速度還是界面編程的簡便化等方面,C#語言都有其獨特的特點,這些特性使得C#語言非常適合在工業(yè)實時性要求比較高的控制系統(tǒng)畫面中使用。故用C#作為畫面的編程語言。
2 連鑄L2系統(tǒng)畫面功能分析
連鑄L2系統(tǒng)畫面主要具有以下三個功能:(1)定周期對L1采集到的數(shù)據(jù)進行收集并在畫面端展示出來以便操作人員查看(周期一般在10秒左右);(2)在收集到L1的某些特殊數(shù)據(jù)后,啟動后臺進程進行數(shù)據(jù)的邏輯處理和分析,然后在畫面上顯示,用于指導(dǎo)操作人員的生產(chǎn)(這些操作中有些是需要耗時很久但操作人員不急于查看結(jié)果的,但這些操作卻不能影響操作人員接下來進行畫面上其他的操作);(3)操作人員通過L2系統(tǒng)畫面完成與L3系統(tǒng),L1系統(tǒng)的相互數(shù)據(jù)接收和發(fā)送。(操作人員有時會需要同時按多個按鈕完成多項操作,不能按完一個按鈕等待程序執(zhí)行完成后再按其他按鈕)
從以上的功能分析可以看出,連鑄L2系統(tǒng)畫面在展示數(shù)據(jù)的同時,還要進行其他的操作,并且這些操作要具備并行處理能力,即在相當(dāng)短的時間內(nèi)進行多個操作。這時就要求畫面具有多任務(wù)處理的能力,為了達到這一要求,我們引進多線程技術(shù)。
3 多線程技術(shù)原理
在介紹多線程技術(shù)之前,我們先弄清楚幾個概念。(1)什么是進程?簡單的說,一個在操作系統(tǒng)中運行的程序,它就是一個進程,進程除了包括運行中的程序(代碼)本身外,還包括該程序所使用到的內(nèi)存空間和操作系統(tǒng)內(nèi)的系統(tǒng)資源。一個進程通常只有一個主線程。(2)什么是線程?線程就是程序中的一個執(zhí)行流,對于每個線程來說,代碼都是共用的,也就是每個線程都可以執(zhí)行同樣的代碼函數(shù),只是線程與線程之間使用的寄存器(棧指針、程序計數(shù)器等)不同。在弄清楚這兩個概念之后,多線程技術(shù)也就呼之欲出了,多線程技術(shù)就是指在程序中創(chuàng)建多個執(zhí)行不同任務(wù)的線程,并使它們能并行執(zhí)行,以達到程序具備在同一個時間周期內(nèi)進行多任務(wù)處理能力的技術(shù)。
C#多線程技術(shù):
C#是在Windows操作系統(tǒng)上運行的程序語言,C#多線程技術(shù),顧名思義就是用C#這種程序語言去實現(xiàn)多線程技術(shù)。為此微軟為了程序員能方便自如地運用多線程技術(shù)開發(fā)軟件,將多線程的相關(guān)底層封裝在了名叫System.Threading的命名空間中,所有線程通過CLI來進行統(tǒng)一管理。這樣做為程序的開發(fā)人員節(jié)省了寶貴的開發(fā)時間和精力,不用去編寫底層的控制管理代碼,而只要完成程序邏輯部分代碼就可以了。C#多線程技術(shù)提倡兩種主要的多線程開發(fā)方法,本文將使用其中的方法,演示C#多線程技術(shù)的開發(fā)方式。
4 C#多線程技術(shù)的應(yīng)用
在寶鋼二煉鋼5,6號連鑄機L2計算機系統(tǒng)改造項目的畫面中,主要面臨兩個問題。(1)畫面自動刷新數(shù)據(jù),滿足操作工實時監(jiān)控連鑄L1上傳給L2的數(shù)據(jù)信息功能;(2)操作工對畫面操作后,所有數(shù)據(jù)的處理,在后臺完成,不影響畫面的響應(yīng),使操作工能接著進行其他的畫面操作。項目中已經(jīng)通過使用C#多線程技術(shù)解決了以上兩個問題,下面將介紹如何使用該技術(shù)。(本文將附部分項目代碼)。
4.1 C#時間控件Timer
Timer控件是C#編程語言中一個典型的多線程應(yīng)用控件。該控件是定周期的,并且具有跨線程調(diào)用特性。完全可以滿足該項目畫面中關(guān)于定周期更新展示數(shù)據(jù)的要求。該控件的使用方法如下:
從實例中可以看出,該控件的使用方法非常簡便,并且是微軟自帶的控件,封裝使用效果非常好,無BUG。不但減輕了程序開發(fā)人員的開發(fā)負(fù)擔(dān),還使得程序變得簡便易讀。
4.2 自定義多線程
自定義多線程,顧名思義就是自己定義多個線程,每個線程完成某一項子任務(wù),使子任務(wù)具備并行運行的可能。該方法的使用主要解決畫面在執(zhí)行多個子任務(wù)而使得畫面的響應(yīng)速度受到影響的問題。比如說,在該項目中點擊完命令要求,實績發(fā)送等多個按鈕后,還要進行其他畫面操作。這時,不用多線程會使得后臺在處理這些畫面要求的時候影響畫面本身,操作人員無法接著進行其他的畫面修改更新等操作而是要等到后臺處理完畢后才能處理其他操作,而使用多線程技術(shù)則可以在后臺處理的同時,畫面進行其他操作。自定義多線程使用方法如下:
該方法是C#多線程技術(shù)應(yīng)用的精髓所在,該方法的使用靈活,簡便,可以很好的滿足操作人員對連鑄L2畫面進行多任務(wù)處理的各種要求,并同時提高畫面的響應(yīng)速度,更好的保證操作人員對連鑄生產(chǎn)的實時控制。
5 結(jié)束語
從多線程應(yīng)用程序的運行原理來看,多線程應(yīng)用程序被分為幾個能同時執(zhí)行的子線程后,能夠在同一個時間周期內(nèi)完成各種各樣的任務(wù)。有效解決了在單線程應(yīng)用程序中多任務(wù)會產(chǎn)生任務(wù)阻塞而無法同時完成多個任務(wù)的問題。同時,由于多線程具有并發(fā)處理能力,使應(yīng)用程序的快速響應(yīng)特性得以增強。
從多個連鑄項目L2系統(tǒng)畫面使用C#多線程技術(shù)的效果上來看,多線程技術(shù)的使用滿足了連鑄L2系統(tǒng)對于畫面快速響應(yīng)特性和實時特性的要求,并且使用該技術(shù)的系統(tǒng)運行穩(wěn)定,從未出現(xiàn)問題。在已經(jīng)實施的項目中獲得了用戶的一致好評,尤其是下列幾個方面在工業(yè)控制行業(yè)二級系統(tǒng)畫面中都具有一定的參考價值。
(1)針對具有多任務(wù)特性的工業(yè)控制系統(tǒng)畫面來說,將多線程技術(shù)應(yīng)用于其中是一個不錯的選擇。
(2)用戶界面可以做得更加人性化,比如用戶點擊了某一個按鈕去執(zhí)行某一項任務(wù),這時可以彈出一個任務(wù)進度條來顯示任務(wù)完成的進度。
(3)從單純的技術(shù)角度來看,可視化的C#語言具有清爽,易編程等特點。
參考文獻
[1]孫永強,等.Visual C#.NET入門與提高[M].北京:清華大學(xué)出版社,2002.
[2]特羅爾森(Andrew,troelsen).C#與.NET3.5高級程序設(shè)計(第4版)[M].人民郵電出版社,2009.
[3]蔣慎言.連鑄及爐外精煉自動化技術(shù)[M].冶金工業(yè)出版社,2006.