我曾经有一个集合,我将内容保存到了持久存储中。现在我想要将三个集合保存到持久存储中。
一开始我使用线程池保存一个集合,但现在有三个集合需要保存,而且每个集合都要保存到不同的位置,所以我不想将它们合并或保存到同一个位置。
我的问题是:我应该使用手动线程并为每个Save()方法创建一个线程,还是应该为每个方法创建3个线程池,或者应该在一个ThreadPool.QueueUserWorkItem调用中调用所有3个方法。
1.第一种方法
ThreadPool.QueueUserWorkItem(o =>
{ Save<Foo>(ConcurrentCollectionStorage.Bus1);
Save<Bar>(ConcurrentCollectionStorage.Bus2);
Save<Car>(ConcurrentCollectionStorage.Bus3);
});
第二种方法
ThreadPool.QueueUserWorkItem(o =>
{ Save<Foo>ConcurrentCollectionStorage.Bus); });
ThreadPool.QueueUserWorkItem(o =>
{ Save<Bar>(ConcurrentCollectionStorage.Bus2); });
ThreadPool.QueueUserWorkItem(o =>
{ Save<Car>(ConcurrentCollectionStorage.Bus3); });
第三种方法。手动创建线程并加入它们。
在执行这些操作时,我不希望我的应用程序挂起。我希望它能够处理和保存数据,并完成,但不会影响前台进程,整个应用程序。
最好的方法是什么?
我应该使用哪一个?有更好的方法吗?