2014-11-14 2 views
0
private void Home_Load(object sender,EventArgs e){ 

//request input by user first 
getUserInput() 

Thread threadA = new Thread(new ThreadStart(threadAtoRun())); 
threadA.Start(); 

Thread threadB = new Thread(new ThreadStart(threadBtoRun())); 
threadB.Start(); 

Thread threadC = new Thread(new ThreadStart(threadCtoRun())); 
threadC.Start(); 

} 

private void getUserInput(){ 
    //request input from user,user need to select and submit to form ,this input from user use  globally for threadA,threadB and threadC. Only request one times before threadA,threadB and threadC run. 
} 

private void threadAtoRun(){ 
    //to do something 
} 

private void threadBtoRun(){ 
    //to do something 
} 

private void threadCtoRun(){ 
    //to do something 
} 

В этой программе требуется ввод конечного пользователя перед запуском нескольких потоков, вход будет использоваться threadA, threadB и threadC. Запросить только один раз во время выполнения программы.Запросить ввод от пользователя перед запуском несколько потоков

Как это сделать?

+0

Что, _specifically_ у вас возникли проблемы с выяснением здесь? Ясно, что вы понимаете необходимость отображения формы перед запуском потоков. Предположительно, вы понимаете, как хранить результаты, чтобы информация могла использоваться потоками. Какая часть этого вызывает трудности? –

ответ

0

Запуск модальной формы для ввода пользователя. Модальная форма блокирует выполнение до тех пор, пока пользователь не отправит/не отменяет модальную форму. Когда модальная форма вернется, продолжите обработку, запустив потоки.

var form = new GetInputForm(); 
if (DialogResult.OK == form.ShowDialog()) { 
    // continue processing, start threads 
} 

Вы можете проверить, был ли вход уже собран, прежде чем запускать форму, чтобы пользователь запрашивал только один вход.

Смежные вопросы