我正在尝试为游戏制作服务器程序,我需要在Windows窗体应用程序中运行3个额外的线程。所有线程都需要能够访问相同的变量,(thread1:将从我的数据库中提取用户命令并执行它们,thread2:将更新所有用户数据和thread3:将发送所有新的变量回到数据库。)我已经查看了后台线程,我不确定那是否会做我想要的东西(他们看起来像他们可以运行我的代码,但看起来他们会很难对所有线程使用相同变量的时间。)
所以我想我的问题是,这是否可行以及实现这一目标的最佳方法是什么,后台工作人员和调用会做什么?我会在做什么问题,任何人都有更好的主意。
另一方面,我有另一个问题,即我已经尝试了很多次使用简单的线程完成此操作。现在从我的理解做起我在另一个线程上的所有工作不应该锁定我的ui,但它确实如此。也许我正在以错误的方式做线程,我的代码看起来像
dim newthread as new system.threading.thread(addressof runmycode)
newthread.start()`
这段代码不准确但是为什么使用这样的线程会锁定UI?它不应该单独运行吗?
答案 0 :(得分:0)
您需要创建对象类的“新”实例以“线程化”并公开您要调用的函数,例如。
Public Class MyNewCode
Public Function runmycode()
' My code goes here '
End Function
End Class
Public Class frmMain ' or under an onClick event or whatever.... '
Dim s As New MyNewCode ' This is the class above '
t = New System.Threading.Thread(AddressOf s.runmycode) ' This is the function above '
t.start()
End Class
答案 1 :(得分:0)
这是我在前面写的一篇教程,它将指导您在VB2008中创建一个基本的多线程程序。使用VB2010,您可以根据需要删除代理,但想法几乎相同。