Как создать параллельную задачу с помощью TPL?C#

Место общения программистов C#
Ответить
Anonymous
 Как создать параллельную задачу с помощью TPL?

Сообщение Anonymous »

У меня есть сценарий, который создает большие двоичные объекты (с помощью команды dd, каждый размером 10 КБ) в учетной записи хранения. Я передаю этот сценарий функции, которая выполняет эту команду для создания файла. Теперь он работает как создание одного файла и некоторого количества файлов за некоторое время.
Я хочу создать столько файлов, что за один раз нужно создать 10 файлов (параллельно)
Я пытаюсь реализовать параллельные задачи, но это не работает.
ниже приведен метод:
Закомментированные строки какой код я пытался........
public string MyMethod(string , string command)
{
using (var client = new SshClient(
, "",
new PrivateKeyFile(new MemoryStream(Encoding.UTF8.GetBytes(privateKeyValue)))
))
{
client.KeepAliveInterval = TimeSpan.FromMinutes(1);
client.Connect();
var result = "";
using (var cmd = client.CreateCommand(command))
{
var commandExecution = cmd.BeginExecute();
cmd.EndExecute(commandExecution);
Task.Delay(6 * 1000).Wait();
result = new StreamReader(cmd.OutputStream).ReadToEnd() + new StreamReader(cmd.ExtendedOutputStream).ReadToEnd();

// int numberOfTasks = 5;
// // Start multiple parallel tasks
// Task[] tasks = new Task[numberOfTasks];
// for (int i = 0; i < numberOfTasks; i++)
// {
// tasks.Start();
// System.Threading.Tasks.Parallel.For(0, 15, index =>
// {
// var commandExecution = cmd.BeginExecute();
// cmd.EndExecute(commandExecution);
// Task.Delay(60 * 1000).Wait();
// result = new StreamReader(cmd.OutputStream).ReadToEnd() + new StreamReader(cmd.ExtendedOutputStream).ReadToEnd();
// }
// );
// Task.WaitAll(tasks);
// }
}
client.Disconnect();
return result;
}
}


Подробнее здесь: https://stackoverflow.com/questions/784 ... -using-tpl
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»