任務:在乙個主線程中同時開啟三個執行緒,每個執行緒中執行相同的資料插入動作,只是資料不同。
資料庫在得到插入的響應後,作相應的處理,如果為數值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...