多線程
進程:
一個程序就是一個進程,就相當於在內存裏開闢一塊空間
一個進程有多個線程。
線程:
操作線程的類在Threading命名空間下。
Thread thread=new Thread(方法名);注意Tread傳入方法用到委託,不用加方法的括號
前臺線程:
默認情況都是前臺線程,特點:要所有的前臺線程退出以後 程序纔會退出
進程默認的線程叫做主線程或者UI線程。
線程什麼時候結束,該線程執行的方法執行完以後 線程自動退出
後臺線程:
只要所有的前臺線程結束 後臺線程就會立即結束
設置線程爲後臺線程:thread.IsBackGround=true;
TextBo.CheckForIllegalCrossThreadCalls=false;//關閉控件的跨線程訪問。
線程重入
:多個線程訪問同一個資源 可能造成不同步的情況,這個叫做線程重入
如何解決這個問題:Lock(this)this代表當前對象,Lock將這個對象當參照物,將它鎖住
例: Lock(this)
{
for(int i=0;i<1000000;i++)
{
int mun+=mun;
}
}
執行步驟:一個線程進來執行代碼,並加一把鎖,執行完就解鎖,正在執行的時候另外一個線程來執行,發現有線程在執行就等待
,知道第一個線程執行完,第二個線程採取執行
th.Abort();強制停止線程。
Thread.Sleep();將當前線程暫停,括號中代表毫秒。
Thread.CurrentThread;這個屬性是得到當前線程的引用。
委託
委託聲明:public delegate void SayHi(),用delegate修飾
委託時用來保存多個個方法的指針。傳入的方法決定委託有沒有返回值和參數
委託跟類是一個級別,需要new。
使用+=爲委託對象追加方法。
GDI常用類
問題:如果一個類不是抽象類也不是靜態類,是普通類,並且沒有提供構造函數(可以new ,是靜態構造函數)
通過這個類返回一個靜態方法。
從panelback控件上創建一個畫家對象: Graphics g=Graphics.FromHwnd(this.panelback.Handle); 沒法new出來,只能調用他的靜態方法返回一個對象
DrawEllipse(Pens.Black);pens是筆,畫圓;
DrawArc();畫弧線;
DrawLine();劃線;
DrawRectangle();畫矩形;
DrawString();畫字符串;
Fill.Ellopase();填充;Brushes刷子
FillRectangle();填充矩形
基礎加強6之多線程
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
複習 c#基礎加強
語法規範:駱駝命名: 首字母小寫,單詞後字母大寫 使用在普通變量帕斯卡命名: 首字母大寫,單詞後字母小寫 使用在方法名或者類名面
努力o才幸福
2020-06-21 21:19:39
C# 複製和克隆認識淺談
努力o才幸福
2020-06-21 21:19:39
C# 下利用ICSharpCode.SharpZipLib.dll實現文件/文件夾壓縮、解壓縮
努力o才幸福
2020-06-21 21:19:37
Java基礎學習——複習 第五天--異常處理、常用類、集合類
婧中横卧听雨声
2020-06-11 15:28:40
C#反射基礎知識和實戰應用
努力o才幸福
2020-02-25 23:51:38
2013-12-10複習數據庫高級語法
努力o才幸福
2020-02-25 23:51:38
複習 c#基礎加強
語法規範:駱駝命名: 首字母小寫,單詞後字母大寫 使用在普通變量帕斯卡命名: 首字母大寫,單詞後字母小寫 使用在方法名或者類名面
努力o才幸福
2020-06-21 21:19:39