C# 在启动几个线程之前请求用户输入

C# 在启动几个线程之前请求用户输入,c#,.net,multithreading,C#,.net,Multithreading,在这个程序中,在运行几个线程之前需要最终用户输入,输入将由threadA、threadB和threadC使用。在程序执行时只请求一次 如何使其工作 启动一个模式表单以获取用户输入。模式表单将阻止执行,直到用户提交/取消模式表单。当模态表单返回时,通过启动线程继续处理 private void Home_Load(object sender,EventArgs e){ //request input by user first getUserInput() Thread threadA = n

在这个程序中,在运行几个线程之前需要最终用户输入,输入将由threadA、threadB和threadC使用。在程序执行时只请求一次


如何使其工作

启动一个模式表单以获取用户输入。模式表单将阻止执行,直到用户提交/取消模式表单。当模态表单返回时,通过启动线程继续处理

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
}
在启动表单之前,您可以检查输入是否已收集,以确保只向用户请求一次输入。

什么,具体来说,您在这里遇到问题了吗?显然,您理解在运行线程之前显示表单的必要性。假设您了解如何存储结果,以便线程可以使用这些信息。这给你带来了什么困难?
var form = new GetInputForm();
if (DialogResult.OK == form.ShowDialog()) {
  // continue processing, start threads
}