想要在另一个线程中打开MDI子线程

本文关键字:线程 MDI 另一个 | 更新日期: 2023-09-27 18:02:16

我有一个MDI子表单,其中包含一个DataGridView,它是不断更新的定时器。我不希望在计时器间隔上触发的SQL操作与其他操作冲突,因此希望为这个MDI子窗体使用不同的线程。

我想知道如何创建一个线程。我从MDI父窗体的加载事件打开此窗体。我是否应该在那个时候创建一个线程,然后把所有的MDI子线程的加载代码放在那里或者其他地方?

想要在另一个线程中打开MDI子线程

你不能在另一个线程上做任何UI操作。一个进程只有一个UI线程,所有的UI代码都应该在这个线程上运行(试图在不同的线程上做UI的事情会导致异常)。

你应该做的是让计时器在UI线程上运行并从那里转到后台线程。当数据返回时,请注意需要使用Dispatcher将结果同步到UI线程。