为什么需要线程

时间:2013-12-11 18:20:33

标签: vb.net

我是桌面应用程序的新用户,并且发现在任何地方都有线程使用。

我不明白为什么我们在这里使用它而不是在webapplications中使用它。

我们可以直接调用方法而不是线程。

1 个答案:

答案 0 :(得分:6)

“无处不在的线程”可能是未来出现问题以及可能过去无能的不祥标志,但人们在桌面应用程序中使用多个线程的主要原因是允许长时间运行的事情发生而不会冻结用户界面应用

传统的Windows GUI应用程序有一个“主线程”,负责处理从OS接收的消息。这些消息用于所有鼠标/键盘交互,因此当您停止处理它们时,应用程序停止响应(在几秒钟之后,Windows本身将使应用程序变灰并在标题栏中放置“停止响应”。 )

为了避免这种丑陋,人们移动需要很长时间的活动(因为他们需要大量的CPU,或者因为可能正在等待I / O(磁盘,网络等))到其他线程上。这意味着主线程可以随意保留消息。

您没有明确启动主线程 - Windows会在应用启动时将其提供给您。

你需要非常小心后台线程和主线程之间的交互 ​​- 有一堆规则和限制,如果不遵循它们就会给你一些可能不会立即,一致或在你的机器。这并不意味着他们不在那里......