2017-01-03 31 views
-1

我有一个鼠标向下的事件。只有在此方法中放置断点时,我的应用程序才能按预期工作。如果我删除断点并运行代码,则该功能不起作用。只有当断点放置在方法中时,代码才能工作c#

有什么具体的原因,为什么发生这种情况? PFB事件代码

internal void LeftMouseDown(object sender, MouseEventArgs e) 
{ 
    try 
    { 
     recorderData.CloseRecordedActionWindows(); 

     if (CommonRecorderHelper.IsCursorInsideRecorder()) 
      return; 

         recorderData.m_lastPremitiveAction = PrimitiveMouseEvent.LeftButtonDown.ToString(); 
     recorderData.m_lastMouseDownLocation = e.Location; 
     recorderData.m_IsAssertionStarted = false; 
     recorderData.m_readyForHookDisconnect = false; 
     recorderData.m_previousKeyboardSUITControl = null; 

     recorderData.m_RecordedValue.ResetValues(!recorderData.m_RecordedValue.IsModifierKeyPressed()); 

     if (recorderData.m_RecordedValue.IsModifierKeyPressed()) 
      recorderData.m_IsModifierKeyPressedForMouseAction = true; 

     UpdateRecorderFormWithActions(recorderData.m_lastMouseDownLocation, PrimitiveMouseEvent.LeftButtonDown); 

    } 
    catch (Exception ex) 
    { 
     recorderData.m_RecordingStopped = true; 
     recorderData.m_mouseDownOnValidationBtn = false; 
     SUITLogger.ReportMessage(ex); 
    } 
    finally 
    { 
       recorderData.m_EarlierX = e.X; 
     recorderData.m_EarlierY = e.Y; 
    } 
} 
+1

请问您可以发布完整的代码吗? – Pritam

+0

代码的哪一点是它工作时设置的断点?你可以显示记录数据类型的定义吗? –

+1

如果您正在阅读的内容会在另一个线索中发生变化,或者需要更多时间加载,则可能会发生这种情况。当你放置断点时,你给代码加载时间或其他线程完成。对于我们能够知道情况如何,您应该提供更多关于您想要做什么以及如何做的信息。 – Emad

回答

0

发生这种情况,因为它正在采取更多的时间用于其他线程finish.When我正在线程休眠它工作正常,没有任何破发点。

如果我们把断点,我们给时间给其他线程之前完成的代码..

1

通过将一个破发点上if (CommonRecorderHelper.IsCursorInsideRecorder()),当它击中该行调试器将停止,将光标被移动到代码窗口 - 从而离开你的记录器窗口。

所以我认为你的问题措辞不是很好。其实,你的代码总是工作。只有IsCursorInsideRecorder函数通常返回true,而您期望它返回false

相关问题