比如下面程序段,
//正常程序流
Console.WriteLine("ABCD") ----Line1
Console.WriteLine("DEFG") ----Line2
Console.WriteLine("HIJK") ----Line3
Class1.MethodA(a) ----Line4
...
...
//事件处理方法
private int Task_Exit() ----Line90
{
...
}
通过调试发现:
在执行Line1时,可以断定其实事件TaskExit已经发生,但是系统暂时并不打断正常的程序流,而是这样一直执行到将要执行Line4时,系统才会打断正常的执行,跳到Line90调用事件处理函数Task_Exit()。
我的问题是,既然事件已经发生,为什么要等到执行到LINE4时才中断转而执行事件处理方法,为什么Console.WriteLine这种方法系统不会打断它的执行,而Class1.MethodA(a)却被暂时打断,这中间有什么规则呢?
5 个解决方案
#1
切换线程需要时间
#2
觉得是.net framework 的一种性能优化的手段?
#3
你最好查看一下IL.
#4
你把你的完整一点的代码贴上来看看
#5
看看你的代码?
#1
切换线程需要时间
#2
觉得是.net framework 的一种性能优化的手段?
#3
你最好查看一下IL.
#4
你把你的完整一点的代码贴上来看看
#5
看看你的代码?