WorkflowInvoker invoker = new WorkflowInvoker(new Workflow1());
for (int i = 0; i < 10; i++)
{
//invoker.InvokeAsync(myOrders);
IAsyncResult result = invoker.BeginInvoke(myOrders,new AsyncCallback(WorkflowCompletedCallback),order);
}
Я использую приведенный выше код для реализации асинхронного рабочего процесса. Я надеюсь запустить этот рабочий процесс 10 раз, и у меня есть что-то похожее с пулом потоков, чтобы поток 10 рабочих процессов мог работать одновременно. Второму не нужно ждать, пока первый закончит свою работу. Мой рабочий процесс очень прост: он вычислит и выведет несколько предложений на экран. После того, как я запустил приведенный выше код, я обнаружил, что кажется, что 10 рабочих процессов запускаются один за другим, а не так, как я надеялся запустить одновременно. Как правильно асинхронизировать рабочий процесс? Спасибо!
Обновление: после некоторой обратной связи с другими я также пытаюсь использовать приложение workflow, чтобы сделать это асинхронно:
WorkflowApplication wfApp = new WorkflowApplication(new Workflow1(), myOrders);
for (int i = 0; i < 10; i++)
{
wfApp.Run();
}
/* Read the end time. */
DateTime stopTime = DateTime.Now;
Console.WriteLine(stopTime);
// Duration
TimeSpan duration = stopTime - startTime;
Console.WriteLine("hours:" + duration.TotalHours);
Console.WriteLine("minutes:" + duration.TotalMinutes);
Console.WriteLine("seconds:" + duration.TotalSeconds);
Console.WriteLine("milliseconds:" + duration.TotalMilliseconds);
Вот результат выполнения:
08.04.2011 9:57:49
08.04.2011 9:57:50
Часы работы: 6.27777777777778E-05
минут: 0.00376666666666667
секунды: 0.226
миллисекунды 226:
Процесс заказа
Заказчик: 10 | Доставка: NextDay | Общая цена: 250 | Стоимость доставки: 10
ProductID: 1 | Количество: 5 | Цена: 50
ProductID: 2 | Количество: 10 | Цена: 200
Кажется, что он асинхронизирован, но только один поток фактически выполняет мой рабочий процесс (не основной поток приложения). Но из вывода я вижу только один поток работает мой рабочий процесс. Как я мог позволить 10 потокам запускать рабочий процесс одновременно? Спасибо!