【发布时间】:2011-05-28 21:25:27
【问题描述】:
假设我有一个事件每秒触发 10 次
void Session_OnEvent(object sender, CustomEventArgs e)
{
//DoStuff
DoLongOperation(e);
}
我想要方法 DoLongOperation(e);每次触发事件时在单独的线程上进行处理,
我可以这样做:
new Thread(DoLongOperation).Start(e);
但是我觉得这对性能不好,我想达到最好的性能,那么我能做的最好的事情是什么?
感谢 idvance..
编辑:当我说很长时间时,我并不是说最多需要超过 1 秒的操作,只是我不希望事件等待那个时间,所以我想在单独的线程中进行......
【问题讨论】:
-
你能做的最好的事情:测量。
-
你的意思是要取消之前的LongOperation。或者您想对并行 LongOperation 设置上限?
-
使用线程会使现代内核上可用的 CPU 周期数翻倍,这对性能有好处。但是程序中未诊断的错误数量会增加四倍,这对发布日期不利。
标签: c# multithreading