我是vb.net中的多线程新手,但我想如何构建以下程序
注意:许多数字都不会返回任何内容,但问题是在数字没有相关名称的超时时间超出10秒这是非常昂贵的
第一个帖子
open text file (filename = 1000.txt)
for i = 1 to 1000
getEmpName(i)
write i to text file
write name to text file
new line
next
第二个帖子
open text file (filename = 2000.txt)
for i = 10001 to 2000
getEmpName(i)
write i to text file
write name to text file
new line
next
如果可行,这将拯救我的生命
感谢您的支持
答案 0 :(得分:0)
以这样的方式创建查找会更好一点,即getEmpName(i)不需要超时来指示找不到名称。
如果无法从getEmpName(i)函数本身中删除它,最好缓存第一次运行的结果并半定期刷新缓存(取决于多久一次)数据变化)。
这样,当查找名称时,您会点击缓存,并可以快速发现名称是否存在(0成本旁边)。
答案 1 :(得分:0)
多线程这项工作要求你的getEmpName(i)
子线程是线程安全的,就是在使用其他资源,库调用和变量时应该小心(比如为我存储EmpName ...)。
如果您当前的实施工作正常,拆分文件并多次启动您的程序,您需要做的就是收集输出并将它们组合起来。这是一种快速安全的“多线程”/“多进程”方式; )
对于Real Multithrad,让您的正常工作流程读取文件,从Threadpool为每个i启动一个新线程并等待调用返回您的名字,也可以将所有名称写入一个安全列表或收集,排序和输出。观察并发网络连接和错误的最大数量。