我在Windows窗体应用程序中有一个类,它接受一个用于调用web api的文件名,返回一些数据并将其插入数据库。在确定一组文件名后,我在我的主类中调用它。当我运行程序时:
foreach(String M_file in files)
{
FileTODataBase ftb = new FileToDataBase(M_file);
}
工作正常。如果我将FileToDataBase
移至method(object a)
并在循环中调用ThreadPool.QueueUserWorkItem(method, M_File);
foreach(String M_File in files){
ThreadPool.QueueUserWorkItem(method, M_File);
}
private void method(object a){
String M_Files = a as String;
FileToDataBase ftb = new FileToDataBase(M_Files);
}
它仅适用于我的6个文件的测试文件夹。在800多个项目的完整文件夹上运行时,它似乎没有做任何事情。它不冻结只是似乎没有做任何插入或调用api的实际工作。我已经阅读了一些关于使用线程池和任务的其他帖子,但是无法让任何实现工作。