一个连接远程服务器 从服务器取得许多的标签名和对应的标签名的值。
如果按开始执行(CTRL+F5),那程序正常!可以得到对应标签的值。
但是,如果按启动调试(F5),那么得不到标签的值!!程序是别人做的,程序里面好像用到了一些线程方面的东西!!程序中没有做任何断点!!请问高手为什么调试和执行会出现不同的结果呢??如何才能解决????
感激~~~~!!!

解决方案 »

  1.   

    F5为编译并输出窗口(检查错误)
    Ctrl+F5为编译并输出窗口(不检查)
      

  2.   

    这种东西比较恶心,建议好好检查代码。 debug 模式的代码检查比较少,release 模式代码检查相对要求较高。看看是不是有一些 warning 没有处理,在 release 模式下编译看看
      

  3.   

    程序问题,还有可能是内存分配问题。调试跟踪看看
    通过Thread.sleep延迟看看
      

  4.   

    #if (DEBUG)
                    RunInDebugMode();
    #else
                    RunInReleaseMode();
    #endif 
    1111(51020796) 16:58:09:
            private static void RunInDebugMode()
            {
                AppDomain.CurrentDomain.UnhandledException += AppDomainUnhandledException;
                Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);            Application.SetCompatibleTextRenderingDefault(false);
                try
                {
                    new ShellApplication().Run();
                }
                catch (Exception ex)
                {
                    HandleException(ex);
                }
            }        private static void RunInReleaseMode()
            {
                AppDomain.CurrentDomain.UnhandledException += AppDomainUnhandledException;
               
    1111(51020796) 16:58:09:
    hreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
                
                Application.SetCompatibleTextRenderingDefault(false);
                try
                {
                    new ShellApplication().Run();
                }
                catch (Exception ex)
                {
                    HandleException(ex);
                }
            }