0

我有一个问题,三天后我仍然找不到答案。

我正在创建一个用户控件。此控件上托管了两个控件。一个是编辑字段,另一个是保留行号和其他用户添加内容的边距。

我要做的是实例化这些以在它们自己的线程中分离控件并在这些线程上执行所有任务,例如绘画和更新。usercontrol 线程将简单地过滤消息并将其定向到正确的控件。我将通过覆盖 WndProc 方法来做到这一点。

做我很好的所有消息的东西但是我如何实例化控件。一旦创建这些控件的线程完成,线程就不会死亡并且控件变得不可访问。抱歉目前没有代码,我倾向于在任何编码之前做很多研究,但我似乎找不到任何可以帮助的东西。

4

1 回答 1

1

这不会很好地工作。所有 UI 元素(表单、控件等)都具有线程关联性要求,这些要求规定它们只能从创建它们的线程中访问。试图将托管在一个线程上的控件嵌入到另一个线程的另一个控件中是徒劳的。即使你可以让它工作(并在这里松散地使用术语“工作”),结果可能充其量是不可预测的。你需要重新考虑你的方法。最好将所有控件托管在同一个线程上,然后将任何耗时的操作转移到工作线程请记住,仅让工作线程忙于与 UI 无关的操作。操作完成后,您可以将结果编组到 UI 线程,在那里它可以适当地分派给控件。

于 2013-09-04T14:26:07.900 回答