Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.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
Vb.net 什么时候是有效的线程机会?运动模拟_Vb.net_Multithreading_Winforms - Fatal编程技术网

Vb.net 什么时候是有效的线程机会?运动模拟

Vb.net 什么时候是有效的线程机会?运动模拟,vb.net,multithreading,winforms,Vb.net,Multithreading,Winforms,我一直在研究线程和它可能给您的应用程序带来的复杂性。在我的应用程序中,有许多实例的函数都是大量代码行(500-1k+行),如果适用,我希望加快这些函数调用 线程主要是为运行UI代码时的数据库查询等而设计的,还是在我的情况下它可以工作,并将我的方法分割成一些线程,这样我们就可以同时运行函数,从理论上减少一点处理时间 只是想看看这种情况是否值得研究,并花时间研究一下当您不想占用主(应用程序)线程时,就会产生一个新线程。例如,如果您正在加载一些需要一段时间才能加载的图像,则可以在单独的线程中进行加载,

我一直在研究线程和它可能给您的应用程序带来的复杂性。在我的应用程序中,有许多实例的函数都是大量代码行(500-1k+行),如果适用,我希望加快这些函数调用

线程主要是为运行UI代码时的数据库查询等而设计的,还是在我的情况下它可以工作,并将我的方法分割成一些线程,这样我们就可以同时运行函数,从理论上减少一点处理时间


只是想看看这种情况是否值得研究,并花时间研究一下

当您不想占用主(应用程序)线程时,就会产生一个新线程。例如,如果您正在加载一些需要一段时间才能加载的图像,则可以在单独的线程中进行加载,以便UI仍然能够响应


在这种情况下,您可能需要重构现有代码。对现有代码进行线程化可能有助于将速度提高一点,或者可能会导致比解决问题更多的问题。无论哪种方式,它都不会使您现有的代码(听起来似乎需要清理)变得更好。

您无法修复具有1000行代码的函数的程序。现在已经太晚了。非常同意@HansPassant。超过20/30行代码的单一方法表明设计非常糟糕。好的,谢谢!我想知道我们是否可以做些什么来修复遗留代码,但这看起来更像是一张绷带,而不是实际的修复。@Criel解决方案是重构代码,以便将其分解为适当的独立部分。糟糕的应用程序性能是糟糕的代码设计的直接结果。因为它是遗留代码,所以有可能是在关闭选项的情况下编写的。使用Option Strict On并纠正VS指出的所有问题可以显著提高性能。您可以将其与重构代码结合使用。