我很少使用线程、后台工作人员等,但从未尝试知道我们应该何时使用哪个以及每种技术在内部如何工作。所以在这里我问几个关于线程、异步调用方法、后台工作者或 TPL 的问题。我在这里道歉,我问了几个问题。我的要求是请阅读并详细回答。
当我们运行我们的应用程序时,应用程序从一个称为主线程的线程开始。GUI 相关控件是在另一个线程上创建的,我听说了多远……是真的吗?是否为 GUI 创建了任何线程?
当我们调用少数方法时,所有方法调用都按顺序发生,这意味着一个方法调用stand & end,然后下一个方法将启动,一切都发生在主线程中。这就是主线程被阻塞的原因。如果我们不想阻塞主线程,那么我们总是喜欢在另一个线程上异步运行方法。异步调用任何方法是否意味着在单独的线程上执行方法?如果不是,这是否意味着异步调用在同一线程中执行而不阻塞主线程的任何方法?如果是,那怎么可能。请详细解释。
当我们异步调用任何不阻塞主线程的方法时,实际上会发生什么?我需要知道幕后发生了什么。
通过thread.start调用方法和异步调用方法有什么区别?
后台工作者在同一个主线程或单独的线程中异步执行方法?
当我们使用 thread.start 调用方法时,我如何指定回调,当我的方法完成时,将发生回调并让我知道该方法完成。我尝试使用 thread.start 找到这样的示例,但没有找到。所以帮我用示例代码来做。
任务并行库的主要目标是什么。TPL 是否在主线程或单独线程中执行任何方法?
我们可以使用 thread.start 或后台工作程序或异步调用任何方法来解决我们的目的,那么有什么额外的东西给 TPL 的人使用它呢?