Я работаю с C# winform У меня есть список файлов. С циклом мне нужно загрузить все файлы (5000 изображений) на другой сервер, как я могу реализовать его с помощью многопоточности И еще как я могу узнать, когда один поток завершен, а затем использовать его для следующего файла, ожидающего загрузки, должен ли я использовать класс монитора?C# threading для загрузчика файлов
-1
A
ответ
2
Вы можете использовать PLINQ для этого:
IEnumerable<string> yourFiles = new[]{ "C:\\file.txt", "D:\\data.dat" };
int numberOfThreads = 10;
yourFiles.AsParallel().WithDegreeOfParallelism(numberOfThreads).ForAll(UploadFile);
private static void UploadFile(string file)
{
// do the actual uploading
}
2
Может Parallel.For что-то для вас. Это простой в использовании. Вы знаете, когда поток завершен, потому что вы можете добавить некоторую переменную в конец вашего метода в другом потоке. Что-то вроде ManualResetEvent. Я думаю, что Parallel.For - это поститься. Вы также можете использовать пул потоков. Прочтите через веб-сайты Microsoft.
Parallel.For (.NET 4)
For(Int32, Int32, Action<Int32>)
ThreadPool (.NET 2)
ThreadPool.QueueUserWorkItem(waitCallback)
Смежные вопросы
- 1. Сбой загрузчика файлов для системы обновлений
- 2. C# Threading внутри для цикла
- 3. Background threading in C#
- 4. несколько файлов проблема загрузчика $ _POST
- 5. C# Windows Threading Threading Process Улучшение производительности
- 6. C++ 11 threading vs .Net threading?
- 7. Приложение для Android-загрузчика
- 8. Управление потоком загрузчика C#
- 9. Ошибка блокировки загрузчика C++
- 10. Threading in C++
- 11. C++ 98 и threading
- 12. C++ 0x threading
- 13. Winform и threading (C#)
- 14. Threading in C
- 15. WPF C# Threading
- 16. C# threading deadlock
- 17. C++ threading in linux
- 18. Node.js C++ Addon: Threading
- 19. C# TPL Threading Taks
- 20. C# threading weird ThreadAbortException
- 21. C# Threading в методе
- 22. C++ boost threading issue
- 23. Threading C++ lock
- 24. C# Threading and synchronization
- 25. C# Threading Query
- 26. C# Console App Threading?
- 27. C# threading a FolderBrowserDialog
- 28. C# Условие Threading race
- 29. C# Threading issue
- 30. looping in C# threading
Вам нужно будет по крайней мере .NET 4 –
Да, действительно. Ему нужна версия .NET, которая не старше ** 2010 **. Я не думал, что это важно в ** 2015 **. – nvoigt
Я просто добавил комментарий в качестве примечания. Вы будете удивлены, сколько корпоративных приложений по-прежнему используют .NET 2 или 3.5 –