很多时候, 我们想把一项操作放入后台线程去执行, 可能是为了提高操作体验(UI表现的流畅), 或者是性能(充分利用多核的计算能力)等
为了方便, 我在这里先定义一个简化的线程模型:
所有的操作都定义为命令..., 把各种参数封装成Command, 发到后台线程去执行, 然后写一堆的swith-case去判断是什么命令, 再执行相应的操作
这种方式的好处就是简单, 而且也把操作细节隐藏在内部线程里了, 不过从编码的角度来看...在学习WPF时, 发现他们可以直接使用Dispatcher.BeginInvoke把某个函数发到后台去执行, 后来想了想, 其实就是把函数封装成对象发过去了....在阅读Unreal代码时发现, 里面用了几个很巧妙的宏, 可以把代码片段封装成对象, 这样就免去了定义函数的代码量....所以一段代码可以当成宏的一个参数传入, 然后封装成对象, 真是让人想不到的办法!