在过去的几周里,为了加快我们的数据库清新过程,我创建了一些额外的程序,基本上是exe文件的副本。程序本身,访问网页,图像等,并使用线程来执行此操作。第二个程序使用LIMIT 300,100和第三个LIMIT 600,100,以确保它们不能在相同的记录上工作。
在过去的几个星期之前,一天中的任务调度程序都会出现一个没有问题的程序。每次只能运行一次exe。
由于现在有三个程序在xp上运行.net 2.0,程序经常会卡住而且永远不会结束。我必须从任务管理器中删除它。
它在IDE中正常运行
我只是想知道升级到vb.net 2010会有什么好处吗?
答案 0 :(得分:2)
你遇到了死锁问题,在线程代码中很常见。 VS2010并没有神奇地让它消失。 .NET 4.0中有一个名为Task的新类,它简化了管理线程的工作。但如果您的原始代码已经触发它,那么就像遭遇死锁一样。您可以使用任务重写代码并获得幸运。这种运气通常是短暂的,它会每月一次而不是一小时就会陷入僵局。更糟糕的是因为排除故障要困难得多。
首先解决问题,然后考虑改进它。你花在追逐这个问题上的时间非常值得,当你完成时你会对线程有更多的了解。