Thread oThread = new Thread(new ThreadStart(ddd))为什么走不到ddd这个函数,请高手指教
public void ddd() ////1
{ ////2
try ////3
{ ////4
Form1 formq = new Form1();////5
int a = 9; ////6
} ////7
catch ////8
{ ////9
int nn = 9; ////10
} ////11
} ////12
private void timer2_Tick(object sender, System.EventArgs e)////13
{ ////14
timer2.Enabled = false; ////15
Thread oThread = new Thread(new ThreadStart(ddd));////16
oThread.Start(); ////17
while(!oThread.IsAlive); ////18
oThread.Abort(); ////19
oThread.Join(); ////20
timer2.Enabled = true; ////21
} ////22
在第5行设置断点后,按F5,走不到该断点.如果在15行加一个断点后就可以走到15行,然后用F10单步跟就可以走到第5行,但是再按F10走不到第6行,直接回到了定时器中,并没有被CATCH,请问是怎么回事,怎么才能走到第6行.
[解决办法]
其实你用了timer,本身就可以模拟多线程,为什么还要在timer事件里面启动其他线程呢
[解决办法]
什么叫被优化掉了,请问怎么能让它走到第六行.
他没有第六行了!
C#又不是解释执行的。
这是因为你的程序定义了i而不使用,所以编译器直接把i省略了。
[解决办法]
如果你timer里面有循环处理的话,用Application.DoEvents()试一试,看看其他的处理会不会被响应