У меня была 1 коллекция, которую я сохранял в постоянном хранилище. Затем у меня было 3 коллекции, которые я хотел бы сохранить в постоянном хранилище.
Сначала я использовал ThreadPool для сохранения одной коллекции, но теперь у меня есть 3 коллекции. Поскольку каждая коллекция отправляется в отдельное хранилище, я не хочу объединять их или сохранять в одном месте.
У меня вопрос, должен ли я использовать ручные потоки и создавать по одному потоку для каждого метода Save (), или мне нужно создать 3 пула потоков для каждого метода, или я должен вызвать все 3 метода в одном вызове ThreadPool.QueueUserWorkItem.
1.Первый подход
ThreadPool.QueueUserWorkItem(o =>
{ Save<Foo>(ConcurrentCollectionStorage.Bus1);
Save<Bar>(ConcurrentCollectionStorage.Bus2);
Save<Car>(ConcurrentCollectionStorage.Bus3);
});
2. Второй подход
ThreadPool.QueueUserWorkItem(o =>
{ Save<Foo>ConcurrentCollectionStorage.Bus); });
ThreadPool.QueueUserWorkItem(o =>
{ Save<Bar>(ConcurrentCollectionStorage.Bus2); });
ThreadPool.QueueUserWorkItem(o =>
{ Save<Car>(ConcurrentCollectionStorage.Bus3); });
3. Третий подход. Создание темы вручную и присоединение к ним.
При выполнении этих операций я не хочу, чтобы мое приложение зависало. Я хочу, чтобы он обрабатывал и сохранял данные, а также завершал, но не влиял на процессы переднего плана, все приложение.
Какой лучший способ сделать это?
Какой из них мне следует использовать? Есть ли лучший способ сделать это?