Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 多线程调试(java或VS)_C#_Java_Multithreading_Debugging_Synchronization - Fatal编程技术网

C# 多线程调试(java或VS)

C# 多线程调试(java或VS),c#,java,multithreading,debugging,synchronization,C#,Java,Multithreading,Debugging,Synchronization,我有一个运行完美的应用程序,我写了两个版本-使用并行方法和简单的一步一步,甚至得到了相同的结果。。。但是在极少数情况下,我的并行代码会产生重复数据。其中只有一小部分——对于400-500 Mb的有效数据,我只得到7到20字节的垃圾,甚至不是每次运行程序。。但是我不喜欢它!我使用了同步数据存储,但它是第三方代码*。所以我想问题就在那里。但我如何调试这种异国情调呢 *我有这个第三方存储的代码很可能您没有考虑到某种比赛条件。调试竞争条件可能很棘手,因为您最终会通过添加任何代码来更改计时。最好的办法是回

我有一个运行完美的应用程序,我写了两个版本-使用并行方法和简单的一步一步,甚至得到了相同的结果。。。但是在极少数情况下,我的并行代码会产生重复数据。其中只有一小部分——对于400-500 Mb的有效数据,我只得到7到20字节的垃圾,甚至不是每次运行程序。。但是我不喜欢它!我使用了同步数据存储,但它是第三方代码*。所以我想问题就在那里。但我如何调试这种异国情调呢


*我有这个第三方存储的代码

很可能您没有考虑到某种比赛条件。调试竞争条件可能很棘手,因为您最终会通过添加任何代码来更改计时。最好的办法是回到过去,认真思考数据被破坏的地方

我将补充一件事,虽然它让我赶上了同步。我不知道你的第三方的东西,但我用对象来同步一个android的东西?。我犯了一个错误,使用了一个布尔对象,它只指向两个对象中的一个,即True或False。所以当我的对象被命名为不同的东西时,我实际上是在同步它们指向的相同对象


不确定这是否有帮助,但祝你好运!多线程可能很棘手!我们可能需要主要的代码部分来真正研究这个问题。

您知道它是C还是Java吗,或者两者都有?没关系,我真的可以将我的核心代码移植到c,并将其与VS调试工具一起使用,或者将其留在java IDE中,遗憾的是,java IDE的调试工具更差,因为我的ViewDebugger不太适合检测线程之间的争用情况。没有什么能比得上保持代码的简单和准确理解代码在做什么。你是非常正确的=我试图自我批评,并记住简单是一个关键,事实上我只能移植我的核心。我的第三方存储代码仅用于java版本,仅用于win的dll