我有一个鼠标左键事件。只有在此方法中放置断点时,我的应用程序才按预期工作。如果我删除断点并运行代码,则功能无效。
为什么会发生这种情况有什么特别的原因吗? 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;
}
}
答案 0 :(得分:1)
通过在if (CommonRecorderHelper.IsCursorInsideRecorder())
上放置一个断点,调试器将在它到达该行时停止,光标将移动到代码窗口 - 从而离开录制器窗口。
所以我觉得你的问题没有措辞。实际上,您的代码始终有效。只有IsCursorInsideRecorder
函数通常会返回true
,而您希望它返回false
。
答案 1 :(得分:0)
这种情况正在发生,因为正在花费更多时间让其他线程完成。当我让线程进入睡眠状态时,它正在按预期工作而没有任何断点。
如果我们放置断点,我们在另一个线程完成之前给代码留出时间..