过去几天我一直在研究MMO的机器人。它运行在一个大循环中,内部还有1-2个其他较小的循环。到目前为止它很棒。当它运行时,它被设置为使用当前正在执行的操作更新richtextbox,这样我以后就可以轻松地进行故障排除。
我的问题是它的活动和循环它不会自动更新文本框,直到它完成它正在做的一切。当它设置在无限循环中时哪个很难。我希望能够在另一台显示器上使用主程序窗口运行机器人,随着时间的推移给我更新。
整个程序似乎冻结了,我在运行时根本无法与它进行交互。当我希望它停止时,这也会导致问题。我在一分钟内停止它的唯一方法是在visual studio中单击“停止”。
我试过四处寻找,但我不知道该搜索什么。我希望我解释得很好。
提前致谢。
答案 0 :(得分:0)
这将是一个很好的阅读:
http://www.beingdeveloper.com/use-dispatcher-in-wpf-to-build-responsive-applications/
您可以发送委托人fx,它负责格式化程序或写入程序。在您的实现中,它将是AppendText的那个。并确保Richtextbox.AppendText在Dispatcher.Invoke()
中代码示例
class BotRand
{
//Write Event is delegate
public execute(WriteEvent writeFx)
{
//Crawl
writeFx("message");
}
}
class MainWindow : Window
{
void WriteFunc(object message, EventArgs outline)
{
Dispatcher.Invoke(new Action(() => richText.AppendText(message));
}
}
这可以帮助您更有效地开始搜索。 谢谢,