gpt4 book ai didi

在 C# Visual Studio 中调用 IronPython 时,C# WPF UI 卡住

转载 作者:太空宇宙 更新时间:2023-11-03 22:38:17 24 4
gpt4 key购买 nike

我刚刚用C#写了一个程序来制作一个ui,并在其中集成了ironpython来进行一些计算。但是当我调用该函数时,UI 会卡住直到函数结束(甚至进度条也会卡住)

如果这个问题很愚蠢,请原谅我,因为这是我在 StackOverFlow.com 上的第一个问题

函数是:

private void ValidateB_Click(object sender, RoutedEventArgs e)
{
string txt = proInp.Text;
var eng = Python.CreateEngine();
var searchPaths = eng.GetSearchPaths();
searchPaths.Add("F:\\Python27\\Lib");
searchPaths.Add("F:\\Python 3.6\\Lib");
eng.SetSearchPaths(searchPaths);
var scope = eng.CreateScope();
scope.SetVariable("key", txt);
eng.Execute("import os\nkey="os.getcwd()", scope);
}

最佳答案

解决此问题的一个简单方法是使点击处理程序异步并运行一个新任务(但如果您有任何不应在任务内完成的 GUI 交互):

private async void ValidateB_Click(object sender, RoutedEventArgs e)
{
await Task.Factory.StartNew(() => {
string txt = proInp.Text;
var eng = Python.CreateEngine();
var searchPaths = eng.GetSearchPaths();
searchPaths.Add("F:\\Python27\\Lib");
searchPaths.Add("F:\\Python 3.6\\Lib");
eng.SetSearchPaths(searchPaths);
var scope = eng.CreateScope();
scope.SetVariable("key", txt);
eng.Execute("import os\nkey="os.getcwd()", scope);
}
}

但更好的方法是使用异步命令和绑定(bind)。可以阅读有关 WPF 和 MMVM 的内容以了解其工作原理。

关于在 C# Visual Studio 中调用 IronPython 时,C# WPF UI 卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53745642/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com