在進行多執行緒設計過程中,最重要的就是實現執行緒同步和執行緒介面互動。如果想實現執行緒同步,可以通過lock鎖來進行;而如果要想執行緒和介面互動,則需要利用委託來進行,下面請看**:
using看下跑的效果圖:system;
using
system.windows.forms;
using
system.threading;
namespace
public
partial
class
mainfrm : form
private
object
lockshopkeeper
=new
object
();
//the flag of locking state
private
good goods;
//good array
private
static
intsum =0
; //
summery of the goods' price
private
void
mainfrm_load(
object
sender, eventargs e)
//init the storage
private
void
initgoods()
;good radish
=new
good ;
good celery
=new
good ;
good onion
=new
good ;
good egg
=new
good ;
goods
=new
good[
5];
goods[0]
=cabbage;
goods[1]
=radish;
goods[2]
=celery;
goods[3]
=onion;
goods[4]
=egg;
for(
inti =0
; i
<
5; i++)
}//generate the random num of buying
private
intsellnum()
//get the index of a good
private
intgetgoodindex()
//////
start to buy goods in 1000 threads
///private
void
openthread()
}private
void
open(
object
_good)
else}}
}private
delegate
void
updatestoragedelegate(good good);
private
delegate
void
updateselldelegate(good good,
intnum);
private
delegate
void
updateprofitdelegate(good good,
intnum);
private
delegate
void
updateprogressinfodelegate(
intsum);
private
delegate
void
updateprogressdelegate(
intsum);
private
void
updatestorage(good good)
else
}private
void
updatesell(good good,
intnum)
else
}private
void
updateprofit(good good,
intnum)
else
}private
void
updateprogress(
intsum)
else
}private
void
updateprogressinfo(
intsum)
else}}
}
ORMLite簡單使用說明
最近學習了ormlite資料庫框架,將我了解到的一些簡單使用方法記下來。使用前你需要自己定義乙個dbhelper類繼承ormlitesqliteopenhelper。裡面要新增乙個無參建構函式和重寫裡面的oncreate方法。如下 public class dbhelper extends orml...
Git 簡單使用說明
mkdir project 建立專案目錄 cd project 進入專案目錄 git init 初始化 git 本地倉庫。此命令會在當前目錄新建乙個 git 目錄,用於儲存 git 倉庫的相關資訊。touch readme 建立readme檔案好習慣 git add 將當前目錄新增到 git 倉庫中...
MPI簡單使用說明
1.程式最開始需呼叫mpi庫 include mpif.h 2.進入mpi工作環境需先輸入下面三個命令 mpi init ierr 初始化mpi工作環境 mpi comm rank mpi comm world,myid,ierr myid 程序號 mpi comm size mpi comm wo...