C# 断点在Monodroid多线程应用程序中不起作用

C# 断点在Monodroid多线程应用程序中不起作用,c#,mono,monodevelop,xamarin.android,C#,Mono,Monodevelop,Xamarin.android,在monodroid中调试多线程应用程序时,当我在锁(…)后设置断点时,或者仅当代码中的语句出现时,它不起作用。但当我在那个关键字之前设置断点,然后一步一步地调试时,它就可以工作了。为什么?如何解决这个问题 代码(传感器侦听器类): 或: 我在通过VS2010 IDE使用monodroid时也遇到了同样的问题。通常情况下,我必须强制关闭平板电脑(或其他设备)上的应用程序,关闭IDE,重新打开IDE,重新部署应用程序。。有时断点会像预期的那样再次开始工作。这是另一个问题。当Visual studi

在monodroid中调试多线程应用程序时,当我在锁(…)后设置断点时,或者仅当代码中的语句出现时,它不起作用。但当我在那个关键字之前设置断点,然后一步一步地调试时,它就可以工作了。为什么?如何解决这个问题

代码(传感器侦听器类):

或:


我在通过VS2010 IDE使用monodroid时也遇到了同样的问题。通常情况下,我必须强制关闭平板电脑(或其他设备)上的应用程序,关闭IDE,重新打开IDE,重新部署应用程序。。有时断点会像预期的那样再次开始工作。

这是另一个问题。当Visual studio无法删除调试文件时。我修复了它,下载了名为“Unlocker”()的软件,并使用这样的bat文件:@echo off D:\MyProject\bin\UnlockerPortable\App\Unlocker\Unlocker.exe D:\MyProject\bin\Debug\Point.dll.mdb/S del Debug\MyProject.dll.mdb/F/Q:error echo失败,错误为#%errorlevel%。退出/b 0然后您可以在VS BEFOR build中将此bat自动添加到exected。这将消除这个错误。但这是另一个错误
static object lockAll = new object();
        public void OnSensorChanged(SensorEvent ev)
        {
            int g1 = 8; //Breakpoint in this place works
            lock (lockAll)
            {
             int g2 = 8; //Breakpoint in this place isn't works
            }
        }
    public void OnSensorChanged(SensorEvent ev)
    {
        Sensor curS = ev.Sensor;  //Breakpoint in this place works
        if (curS.Type == SensorType.Accelerometer)
            {
            int g2 = 8; //Breakpoint in this place isn't works
            }
    }