using system;
using system.collections.generic;
using system.linq;
using system.text;
using system.threading;
}public class lockobj
//正處理佇列
public queuequeuepending
//被禁用佇列
public queuequeuedisabled
/// /// 活動任務數量
///
public int activecount
}public class item
public int waitms
public lockobj lockobj
public datetime begintime
public datetime endtime
public double elaspedseconds
}#endregion
/// /// 監控用建構函式
///
///
public item(lockobj _lockobj)
/// /// 普通任務用的建構函式
///
///
///
///
public item(int _flag, int _waitseconds, lockobj _lockobj)
public void monitor(object obj)
form queuedisabled to queuepending", item.flag);}}
//如果數量不夠,則將等待列表中的加到執行列表
if (this.lockobj.activecount < 2)
this.lockobj.activecount = 2;}}
thread.sleep(1000);
threadpool.queueuserworkitem(new waitcallback(this.monitor), null);
}public void exec(object obj)
, begintime:, endtime: , elapsedseconds:"
, this.flag < 10 ? " " + this.flag.tostring() : this.flag.tostring()
, this.begintime
, this.endtime
, this.elaspedseconds
);lock (this.lockobj)
is disabled.", this.flag);
this.lockobj.queuedisabled.enqueue(this);
}//無異常則將此物件加入到隊尾
else
//從隊首取出物件執行
item itemexec = this.lockobj.queuepending.dequeue();
threadpool.queueuserworkitem(new waitcallback(itemexec.exec), null);}}
}//end of class item
}//end of namespace
while迴圈 執行緒池
public class volatiletest2 catch interruptedexception e system.out.println thread.currentthread getname ticket executorservice.shutdown 自己寫了這樣一段 本來以為執...
執行緒池之函式的執行
static void main string arg hash thread.currentthread.isthreadpoolthread,thread.currentthread.gethashcode catch exception ex console.readline static v...
執行緒池 任務延時執行
我在做乙個匯入功能,匯入的邏輯都是呼叫的頁面介面。介面執行邏輯 將資料儲存到資料庫,然後再呼叫job任務加工歷史資料。使用者在頁面上操作是ok的,畢竟每操作一下,介面最多呼叫一次。但是匯入就不一樣了,相當於使用者一直在對著頁面點點點 這會導致後面歷史任務的加工出現問題。在匯入的時候,我需要先讓基本資...