老年人,在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);
}
您的帮助/指南将节省我的时间。
答案 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"));