我想知道创建和启动任务的重点是什么,然后调用等待任务。我一直认为任务的重点是异步编程,但这似乎只是为同步操作创造了更多的资源。
var task1 = System.Threading.Tasks.Task.Factory.StartNew(() => CheckMaps());
task1.Wait();
var task2 = System.Threading.Tasks.Task.Factory.StartNew(() => CheckTicker());
task2.Wait();
以下是我在寻找答案时找到的一些资源:
SO: ...calling Task.Wait()...after an asynchronous operation... - 任务声明后task.Wait()和task.Result()的结果。
A Stephen Toub Blog - Task.Wait()可以将任务从调度程序中拉出并以内联方式执行。 (在这种情况下,它不适用,因为任务已经开始。)
SO: Memory Barrier Generators - 创建任务会产生内存障碍。
这些资源主要回答了我的担忧,但是当我用标准方法调用替换所有这些任务时,我无法提供帮助,但感觉我有些破坏了。
背景中是否有特定Task.Factory.StartNew()
与常规方法调用明显不同的内容?