如何在C#中运行多个进程
老年人,我是非常初学者和新的C#之后的PHP。
我的问题是如何在c#中同时执行多个function
class void main() { call functionA(argument) call functionB(argument) call functionC(argument) // these all function should start at same time }
我的第一个function
public void functionA(argument) { richTextbox1.appendText(starttime); }
我的第二个function
public void functionB(argument) { richTextbox1.appendText(starttime); }
我的第三个function
public void functionC(argument) { richTextbox1.appendText(starttime); }
您的帮助/指南将节省我的时间。
最简单的选择是使用Task
类。 Msdn指出它,只是复制(带有少量编辑)相关位
Action action1 = () => { // your code here }; Action action2 = () => { // your code here }; Task t1 = new Task(action1); Task t2 = new Task(action2); t1.Start(); t2.Start();
通常,要并行执行多项操作,您需要使用线程。 最简单的方法是通过任务:
Task.Run(() => functionA(argument)); Task.Run(() => functionB(argument)); Task.Run(() => functionC(argument));
但是,在您的情况下,您的所有函数都在尝试更新UI,只有主线程(UI线程)可以执行此操作。 所以它绝对不是multithreading的好用例。
快速谷歌搜索结果:
http://blog.slaks.net/2013-10-11/threads-vs-tasks/
http://cplus.about.com/od/learnc/a/multi-threading-using-task-parallel-library.htm
通过阅读本文,您将发现您的代码看起来与此类似:
System.Threading.Tasks.Task.Factory.StartNew(() => functionA("arg")); System.Threading.Tasks.Task.Factory.StartNew(() => functionB("arg")); System.Threading.Tasks.Task.Factory.StartNew(() => functionC("arg"));