C 執行緒學習

2021-04-07 06:29:46 字數 2148 閱讀 3396

任務:在乙個主線程中同時開啟三個執行緒,每個執行緒中執行相同的資料插入動作,只是資料不同。

資料庫在得到插入的響應後,作相應的處理,如果為數值1,延時10秒,為2延時5,為3不延時.

目的:體驗c#多執行緒處理

後台資料庫的淮備:

1.建表

create table dd (id tinyint )

2.建觸發器

create trigger tg_dd_ins on dd for insert

asbegin

declare @v tinyint

select @v=id from inserted

if @v=1

waitfor delay '00:00:10'

else if @v=2

waitfor delay '00:00:05'

end3.c#中處理過程

form1.cs

using system;

using system.collections.generic;

using system.componentmodel;

using system.data;

using system.drawing;

using system.text;

using system.windows.forms;

using system.data.sqlclient;

using system.io;

using system.threading;

namespace threadprg

;public partial class form1 : form

get

}public form1()

delegate void uidelegate();

private uidelegate d;

private void threadonedelegateexec()

else

this.textbox1.text = "thread one exec finished!";

private void threadtwodelegateexec()

else

this.textbox2.text = "thread two exec finished!";

}private void threadthreedelegateexec()

else

this.textbox3.text = "thread three exec finished!";

}private void thread1exec()

cnn.close();           

private void thread2exec()

cnn.close();

}private void thread3exec()

cnn.close();

}private bool writetoalertfile(string xlogfilename, string xmessage)

if (xlogfilename.indexof(".") == -1)

mfilename =mfilename+ ".log";

using(streamwriter sw=new streamwriter(mfilename))

")+xmessage);}}

catch ;

ret=true;

return ret;

}private void form1_load(object sender, eventargs e)}}

form1.designer.cs

namespace threadprg

base.dispose(disposing);

}#region windows form designer generated code

///

/// required method for designer support - do not modify

/// the contents of this method with the code editor.

///

private void initializecomponent()

}

C 執行緒的學習 執行緒死鎖

因為是學習篇,寫下是為了個人的學習與理解。故參考其他文章為多。想象一下這樣的情況,thread a 在run的時候需要等待thread b的結果,也就是threadproca中新增tb.join 在thread b的threadprocb中新增ta.join 結果就是執行緒a在死等執行緒b的結果,而...

C 多執行緒學習

什麼是程序?當乙個程式開始執行時,它就是乙個程序,程序包括執行中的程式和程式所使用到的記憶體和系統資源。而乙個程序又是由多個執行緒所組成的。什麼是執行緒?執行緒是程式中的乙個執行流,每個執行緒都有自己的專有暫存器 棧指標 程式計數器等 但 區是共享的,即不同的執行緒可以執行同樣的函式。什麼是多執行緒...

C 學習 多執行緒

c c本身並沒有多執行緒的內容,需要使用pthread庫,include,編譯 lpthread,pthread是乙個posix標準,在不同平台上有不同實現,這裡以linux pthread庫為準.參考一,執行緒的建立 1,使用pythread create函式,原型如下 int pthread c...