0

我有一个调用C dll的c# ui 。UI 会打开一个工作区,我希望 DLL 在用户在工作区中执行其他工作时在后台加载一个大文件。现在,UI 在 pinvoke 的帮助下与 DLL 进行通信。(这是 C dll 函数之一。)loadFile

在某些时候,用户将在工作区中执行一些需要完全加载文件的操作,因此需要以某种方式查询 DLL 是否已完成文件加载。我有c#C 代码的源代码,所以我可以改变任何一方的东西。

作为c#的新手,而且只是一个业余的 C 编码器,我可以使用 a 来实现我想要的c# backgroundWorker吗?

或者使用某种形式的线程?

还是 C dll 会阻止所有内容,直到加载完成?

4

1 回答 1

0

您可以从后台工作组件调用 C 函数。此外,您需要确保触发后台工作人员的完成事件。这可以使用后台工作人员的属性进行设置。

这样,当后台工作人员完成其工作时,它会通知用户界面工作已完成,用户界面可以适当地处理图像。

在这里,您必须确保您的 C 代码是阻塞的,即不是多线程的,以确保仅在函数完成其工作后触发后台工作程序事件。

于 2012-09-16T04:50:58.983 回答