我有一个方法public void foo(){}
,后者又调用另一个方法public void fooBL(){}
它位于BusinessLogic层中。 fooBL()
然后调用DataAccessLayer中的另一个方法fooDAL()
。我想在按钮单击事件上异步调用foo()
。我使用的是.NET4.0。
答案 0 :(得分:2)
这取决于你的目标。
调用foo异步的最简单方法是:
Task t = new Task.Factory.StartNew(foo);
答案 1 :(得分:1)
您可以使用线程异步运行方法。以下是一个例子:
Thread t = new Thread(new ThreadStart(foo));
t.Start();
我希望它可以帮到你。 :)
答案 2 :(得分:1)
您可以在Task.Run
中包装任何内容以通过默认调度程序(ThreadPool)运行它:
Task.Run(() => {
yourMethodCallHere();
});
如果您不知道它是如何工作的,您应该避免使用StartNew
。您可能会在捕获当前正在执行的TaskScheduler
实例时引入潜在的错误,并且您无疑会遇到"跨线程"处理UI元素时的异常(或其他更微妙的错误)。