私のアプリケーションはWait
メソッドに多くの時間を費やしています
環境:
- .Net 4.0
- アプリ プラットフォーム x86
- コンソール アプリ
- 勝利サーバー 2008 (x64)
dottrace でパフォーマンスを確認しました
Wait
によってマークされていますSecuritySafeCriticalAttribute
Win7 (x64) ではすべて正常に動作することに注意してください。私は何も見つかりませんでした。どんな提案も大歓迎です。
タスク処理
private readonly BlockingCollection<TTask> _queue = new BlockingCollection<TTask>();
private Thread _workThread;
public void ProcessTask(TTask task)
{
_queue.Add(task);
}
private void ProcessTask()
{
while (_isRun)
{
try
{
TTask task = _queue.Take();
if (task.IsNull())
{
continue;
}
_log.DebugFormat("Sending task: {0}", task);
DoProcessMessage(task);
}
catch (Exception ex)
{
_log.Error(ex);
}
}
}