C 於C 的拓展(下)

2021-10-09 22:40:51 字數 4534 閱讀 1319

(72)程序:乙個程式的動態執行過程。

(73)process類:程序類

(74)前台程序和後台程序:所有前台程序停止時,後台程序自動停止。

(75)cpu執行速度快,i/o介面速度慢,充分利用cpu完成其他操作的同時,

可以開個執行緒給i/o介面(比如:鍵盤輸入)。

(76)thread類:

//常用的兩種過載形式:

public

thread

(threadstart start)

public

thread

(parameterizedthreadstart start)

//兩個引數對應的委託宣告形式如下:

public

delegate

void

threadstart()

;public

delegate

void

parameterizedthreadstart

(object obj)

;

建立執行緒:

class

treadtest

//利用上面兩個委託完成建立執行緒的準備工作:

treadtest tt =

newthreadtest()

; threadstart =

newthreadstart

(tt.m1)

;//m1,m2都是乙個實現邏輯的方法

parameterizedthreadstart pts =

newparameterizedthreadstart

(tt.m2)

;//建構函式建立執行緒:

thread t =

newthread

(ts)

;thread tp =

newthread

(pts)

;

啟動執行緒:

t.

start()

;

tp.

start()

;

優先順序:

t.priority = threadpriority.lowest;
tp.priority = threadpriority.highest;
//優先順序高的執行次數多一點,但不是保證兩者的執行完順序。

後台執行緒:

t.isbackground =

false

;

終止執行緒:

thread.currentthread.

abort()

;

暫停執行緒:

sleep()

;//單位ms

t.

join()

;

tp.

join()

;

mau.

set();

//變為又訊號狀態,即執行

mau.

reset()

;//變為無訊號狀態,即不執行

autoresetevent:自動同步事件。

(72) 執行緒池:用於在後台執行多個任務的執行緒集合。(避免頻繁建立銷毀浪費大量資源)

queueuserworkitem()

;//將方法排隊等待執行,方法在有空的時候執行。

(73)序列化:將物件的狀態轉換成適合保持或者傳輸的過程。(物件—>流)

(74)序列化和反序列化的結合可以實現物件的儲存和物件的傳輸。

(75)二進位制序列化:[serialisable]binaryformatter

void

serialize

(stream s,

object o)

;//將物件o序列化到流s中

object deserialize(stream s)

;//從流讀取資料並且反序列化成物件

(76)soap序列化,xml序列化:用於將物件換為網路容易傳輸的格式。

(77)memorystream:序列化到記憶體流。

(78)deflatestream:無失真壓縮和解壓的行業標準演算法。

//待解壓縮的流,列舉確定解壓(compressionmode.decompress)還是壓縮(compressionmode.compress)

public

deflatestream

(stream stream,

compressionmode mode)

;

方法write():

//array存放 待壓縮的位元組資料,offset偏移量決定這個陣列從哪個位元組開始壓縮,count決定讀多少個位元組去壓縮。

public overrride void

write

(byte

array,

int offset,

int count)

方法read():
//array存放 解壓後的臨時資料,offset偏移量決定這個陣列從哪個位元組開始存放,count決定讀多少個位元組

public overrride int

read

(byte

array,

int offset,

int count)

;

(79)using的作用:

作為匯入命名空間的指令:using system;定義語句模組,以自動釋放資源:

using

(class

class

=new

class()

)//資料庫,檔案i/o操作

定義簡短命名空間的別名:

//之後就可以用wordns代替microsoft.office.interop.word

using wordns = microsoft.office.interop.word;

(79)sql:用於訪問和處理資料庫的標準計算機語言。

(80)sql含三部分:定義(create等),操作(insert等),控制(grant等)

(89)記錄:表的每一行,即稱為一條記錄。

(90)建立資料庫:create database databasename

(91)建立表:create table tablename{}

(92)insert:新增資料記錄。

(93)select:查詢資料。

(94)order by:排序。

(95)where:過濾。

(96)update:修改記錄。

(97)delete:刪除部分或者全部記錄。

索引方式:dataset.tables[i];

名稱方式:dataset.tables[「tablename」];

(107)讀取table中的行:

datarow dr = table.row[i]

;//i>=0

(108)讀取table中的列:

dr.columns[i]

.tostring()

;dr.columns[「fieldname」]

.tostring()

;

(109)列的建立:

datacolumn dc =

newdatacolum

(「fieldname」,

typeof

(type));

//例項化

table.columns.

add(dc)

;//新增

(108)行的建立:

datarow row = table.

newrow()

; table.row.

add(row)

;//table為datatable物件

到這就結束了,因為網上的教程有很多,所以我只是把大概的方法概念羅列了一下,方便學完c++,c的同學進一步學習c#。

C 對C的拓展

目錄 一 bool型別關鍵字 二 引用 三 輸入輸出 四 函式引數 五 string類 六 左值 c 在c語言的基礎型別上新增了布林型別 bool bool可取的值有兩個 true false,占用乙個位元組。true代表真值,編譯器內部用1來表示 false代表非真值,編譯器內部用0來表示。inc...

C 對C的函式拓展

一,內聯函式 1.內聯函式的概念 c 中的const常量可以用來代替巨集常數的定義,例如 用const int a 10來替換 define a 10。那麼c 中是否有什麼解決方案來替代巨集 片段呢?c 中推薦使用內聯函式代替巨集 片段,c 中使用inline關鍵字宣告內聯函式。注意 內聯函式宣告時...

c 對c的拓展 增強

一 新增bool型別關鍵字 c中bool型別需要新增stdbool.h標頭檔案,c 則可直接使用 void test bool a true c 可直接定義而c需新增標頭檔案 true和false可直接用做常量使用 二 三目運算子 c 中返回的可以是個變數,但c語言中返回的表示式的值是乙個常量 vo...