我有一个MDI子窗体,其中包含一个使用Timer连续更新的DataGridView。我不希望在Timer间隔触发的SQL操作与其他操作冲突,因此希望为此MDI子窗体使用不同的线程。
我想知道创建一个帖子的内容。我将从MDI Parent Form的Load事件中打开此表单。我应该在那个时候创建一个线程并将MDI子的所有加载代码放在那里或其他地方吗?
答案 0 :(得分:2)
你不能在另一个线程上做任何UI事情。一个进程只获得一个UI线程,并且所有UI代码都应该在该线程上运行(尝试在不同的线程上执行UI操作将导致异常)。
你应该做的是让计时器在UI线程上运行并从那里转移到后台线程。当数据返回时,请注意您需要使用Dispatcher将结果同步到UI线程。