5

我的应用程序使用ICommands 将方法绑定到按钮。

我将这些命令初始化如下:

AnswerCommand = new DelegateCommand(AnsCommandExecute, AnsCommandCanExecute);

我想知道AnsCommandExecute()方法是否适用于 UI 线程或后台线程?

如果它适用于 UI 线程,我是否必须为此 execute() 方法创建另一个线程,因为我的应用程序在后台执行大量处理。

此外,我的应用程序使用 TCP 与另一个应用程序进行通信。所以,为了获得更好的性能,我是否必须使用不同的线程来接收数据、处理和发送数据。对于此类应用程序,最好的线程方法是什么?

4

1 回答 1

4

确定AnsCommandExecute()方法是否在主线程上工作的最简单方法是在方法中放置断点并检查调用堆栈。

快速回答是肯定的 -AnsCommandExecute()将在主线程上执行。

AnsCommandExecute()为了满足您的线程要求,您可以在单独的线程中调用内容。这将使 UI 响应。

如果您要异步接收响应,则必须在“ Dispatcher ”的帮助下将操作移回主线程。更多信息请参见 Dispatcher 文档

于 2012-10-06T14:46:44.920 回答