我有一个Windows窗体应用程序,它产生24个线程,每个线程从远程服务器上的文本文件中读取数据,并使用内容填充数据库。每个线程以设定的间隔循环,直到更改标志以停止数据收集。
我的问题是,似乎FileIO.TextFieldParser
调用稍微锁定了UI。有时长达一秒或2.这对我来说似乎很奇怪,但如果我删除了那部分代码,就没有UI干扰。将其重新添加并返回...
编辑:我已经File.ReadAllLines
尝试了它并且它仍在发生
这里有什么想法吗?此外,有没有办法分析UI线程,以确认这是/不是问题。
线程产生如下:
Dim thPoll = New Thread(Sub() mc.CollectData())
thPoll.Name = "ip_" & mc.IP
thPoll.IsBackground = True
thPoll.Priority = ThreadPriority.BelowNormal
thPoll.Start()
答案 0 :(得分:1)
这可能取决于您运行后台线程的方式。例如,BackgroundWorker将事件发送到UI线程(see here for an overview)。您可以尝试重新编码线程方法以使用不同的线程方法。
您还可以尝试更改线程数,以查看它是否对您的ui锁定有任何影响。