gpt4 book ai didi

c# - 在新线程 c# windows 应用程序中运行一个函数

转载 作者:行者123 更新时间:2023-11-30 22:21:53 24 4
gpt4 key购买 nike

我正在开发在 window_load 上调用函数 populate() 的应用程序

此函数执行大约需要 1 分钟才能完成。我想让这个函数在单独的线程中调用。

我正在使用以下代码

Thread thread = new Thread(PopulateAndDrawGraph);
thread.Start();

在这个函数的最后一行是

nodeXlControl1.DrawGraph(true);

这里出现异常

调用线程无法访问此对象,因为另一个线程拥有它。

实际发生了什么错误

最佳答案

您只能从创建控件的同一线程内访问 UI 控件,通常是 UI 线程本身。

您需要以线程感知的方式更改您的代码。

这是一篇发表在 MSDN 杂志上的精彩文章:Give Your .NET-based Application a Fast and Responsive UI with Multiple Threads ,其中将详细说明如何做您想做的事。

文章有点老了,但是原理还是一样的。

我想新的 C# 语言特性——比如新的 async/await 关键字——应该会让你的任务更容易一些。

但请记住,访问 UI 控件的旧限制仍然存在。没有办法理解文章中描述的基础知识。

关于c# - 在新线程 c# windows 应用程序中运行一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14069208/

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