如何在C#中运行多个进程

时间:2014-04-22 10:17:33

标签: c#

老年人,在PHP之后,我是C#的初学者和新手。

我的问题是如何在c#例如

中同时执行多个功能
class void main()
{
 call functionA(argument)
 call functionB(argument)
 call functionC(argument)

// these all function should start at same time
}

我的第一个功能

public void functionA(argument)
{
 richTextbox1.appendText(starttime);
}

我的第二个功能

public void functionB(argument)
{
 richTextbox1.appendText(starttime);
}

我的第三个功能

public void functionC(argument)
{
 richTextbox1.appendText(starttime);
}

您的帮助/指南将节省我的时间。

3 个答案:

答案 0 :(得分:2)

最简单的选择是使用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();

答案 1 :(得分:1)

通常,要并行执行多项操作,您需要使用线程。最简单的方法是通过任务:

Task.Run(() => functionA(argument));
Task.Run(() => functionB(argument));
Task.Run(() => functionC(argument));

但是,在您的情况下,您的所有函数都在尝试更新UI,只有主线程(UI线程)可以执行此操作。所以它绝对不是多线程的好用例。

答案 2 :(得分:1)

快速谷歌搜索结果:

<强> 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"));