【发布时间】:2011-08-18 21:54:08
【问题描述】:
我正在开发一个类库,该类库根据 Web 配置文件中定义的策略在多种类型的数据源(文件、xml、数据库)中记录 Web 应用程序的审核详细信息。
我的审计日志方法有一个类似这样的签名: public static void LogInfo(User user, Module module, List lst);
Web 应用程序使用此方法记录重要的详细信息,例如警告、错误甚至异常详细信息。
由于在单个工作流程中,对这些方法的调用超过 700 次,我想将它们设为异步。我使用了 ThreadPool 类中的简单方法,名为 QueueUserWorkItem
ThreadPool.QueueUserWorkItem(o => LogInfo(User user, Module module, List<Object> lst) );
但这并不能确保工作项排队的顺序。即使我的所有信息都被记录了,但整个订单却一团糟。在我的文本文件中,我的日志不是按照它们被调用的顺序。
有没有一种方法可以控制使用 QueueUserWorkItem 调用的线程的顺序?
【问题讨论】:
标签: c# asp.net threadpool