线程搅乱messagebox?
线程搅乱messagebox? Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiNetwork/html/delphi_20061213111432135.html
问题现场:(大概意思哈)
switch(messagebox)
case:mryes
{
thread1=new TMyThread();
}
case:mrno
{
其他的动作;
}
case:mrcancel
exit;
单步运行这一段,选择yes,程序进入thread1=new TMyThread(),然后是TMyThread构造函数,然后再按f7/f8,问题就出来了:
程序跳到了case:mrno里面开始执行“其他的动作”!*_*~~~~~~~
怎么回事呢?怎么避免?
http://www.delphi2007.net/DelphiNetwork/html/delphi_20061213111432135.html
问题现场:(大概意思哈)
switch(messagebox)
case:mryes
{
thread1=new TMyThread();
}
case:mrno
{
其他的动作;
}
case:mrcancel
exit;
单步运行这一段,选择yes,程序进入thread1=new TMyThread(),然后是TMyThread构造函数,然后再按f7/f8,问题就出来了:
程序跳到了case:mrno里面开始执行“其他的动作”!*_*~~~~~~~
怎么回事呢?怎么避免?
UP
没遇到过,估计是CreateThread改变了现场变量。
解决方法:
1 把 thread1=new TMyThread();放到一个新的过程里,
2 case:mryes 放到最后。
3 Tx=messagebox;
switch(tx)
{...};
看看行不行?
谢拉,忘写break了
bs 啊,害我死了好多脑细胞。