在使用任务并行库之前,我经常使用CorrelationManager.ActivityId来跟踪多线程的跟踪/错误报告。ActivityId存储在线程本地存储中,因此每个线程都有自己的副本。这个想法是,当你启动一个线程(事件)时,你分配一个新的ActivityId。ActivityId将与任何其他跟踪信息一起写入日志,从而可以为单个“事件”挑出跟踪信息。这对于WCF非常有用,因为ActivityId可以转移到服务组件。这是我正在谈论的例子:staticvoidMain(string[]args){ThreadPool.QueueUserWorkItem(newWaitCallback(