c# - 如何使用BackgroundWorker在单独的线程中运行像 `object = ClassA.GetObject()`这样的任务?

标签 c# multithreading backgroundworker

我正在尝试使这一行与BackgroundWorker一起使用:

map = Map.LoadMap(mapname);

...像这样:

bw.DoWork += (map = Map.LoadMap(mapname));

它会导致错误无法将类型“game.Map”隐式转换为“System.ComponentModel.DoWorkEventHandler”

我刚刚开始使用 BackgroundWorker 作为我的游戏的线程组件,但看起来转换所有现有方法来使用它并不容易。有没有一种简单的方法可以完成这项工作,或者最好切换到其他线程机制?

注意:从线程基础上,我需要能够轮询进度百分比,并且不会弄乱我现有的方法调用。

最佳答案

您可以利用 anonymous delegates像这样:

bw.DoWork += (sender, args) => { map = Map.LoadMap(mapname); };

关于c# - 如何使用BackgroundWorker在单独的线程中运行像 `object = ClassA.GetObject()`这样的任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11936839/

相关文章:

c# - 使用 MVC5 应用程序将数据库从本地 SQL 切换到 AZURE DB

c# - 在Windows Phone运行时应用程序中使用Xna Framework类

org.apache.catalina.connector.Request.setAttribute 中的 java.lang.NullPointerException

java - 使用多个线程将顺序上传并行到 s3 中?

c# - 将参数传递给 Backgroundworker 错误处理程序

c# - SignalR 使用 401 请求身份验证凭据

c# - 是否可以更改匿名类型?

multithreading - 如何更好地解释 “deadlock”?

c# - 如何从 BackgroundWorker 线程中更新标签?

wpf - 从 WinForms BackgroundWorker 创建 WPF 窗口